반응형
함수의 기본적인 구조
C++ 함수는 다음과 같은 구조를 갖습니다:
<반환 자료형> <함수 이름>(<매개변수 목록>) {
// 함수의 실행 코드
// 반환 값 (만약 반환 자료형이 void가 아니라면)
}
예를 들어, 두 개의 정수를 더하는 함수를 작성해봅시다:
int add(int a, int b) {
return a + b;
}
반환값이 있는 함수
함수가 결과를 반환해야 하는 경우, 반환 자료형에 맞게 값을 반환해야 합니다. 반환 자료형이 **void**가 아니라면 반드시 값을 반환해야 합니다.
#include <iostream>
int multiply(int a, int b) {
return a * b;
}
int main() {
int result = multiply(5, 7);
std::cout << "곱셈 결과: " << result << std::endl;
return 0;
}
실행 결과:
곱셈 결과: 35
반환값이 없는 함수 (void 함수)
반환 자료형을 **void**로 지정하는 함수는 반환값이 없는 함수입니다. 주로 출력이나 다른 부수적인 작업을 수행하는 데 사용됩니다.
#include <iostream>
void printMessage() {
std::cout << "이 함수는 반환값이 없습니다!" << std::endl;
}
int main() {
printMessage();
return 0;
}
실행 결과:
이 함수는 반환값이 없습니다!
여러 반환값을 가지는 함수 (튜플)
C++에서는 하나 이상의 값을 반환하기 위해 **std::tuple**을 사용할 수 있습니다.
#include <iostream>
#include <tuple>
std::tuple<int, double, std::string> multipleValues() {
return std::make_tuple(42, 3.14, "Hello");
}
int main() {
auto result = multipleValues();
int num;
double pi;
std::string greeting;
std::tie(num, pi, greeting) = result;
std::cout << "정수: " << num << std::endl;
std::cout << "실수: " << pi << std::endl;
std::cout << "문자열: " << greeting << std::endl;
return 0;
}
실행 결과:
정수: 42
실수: 3.14
문자열: Hello
함수 오버로딩
C++에서는 함수 오버로딩을 통해 동일한 이름의 함수를 여러 번 정의할 수 있습니다. 함수 오버로딩을 사용하면 매개변수의 타입과 개수에 따라 다른 버전의 함수가 호출됩니다.
#include <iostream>
int add(int a, int b) {
return a + b;
}
double add(double a, double b) {
return a + b;
}
int main() {
int result1 = add(3, 5);
double result2 = add(3.14, 2.71);
std::cout << "정수 덧셈 결과: " << result1 << std::endl;
std::cout << "실수 덧셈 결과: " << result2 << std::endl;
return 0;
}
실행 결과:
정수 덧셈 결과: 8
실수 덧셈 결과: 5.85
반응형
'C++' 카테고리의 다른 글
[C++] string , array , vector , map (0) | 2023.07.28 |
---|---|
[C++] 입출력문 cout , cin , endl (\n) 사용법 (0) | 2023.07.28 |
sort 사용법 (0) | 2020.08.22 |
String에 입력 Vector<char>에 복사하기 (0) | 2020.08.13 |
이중벡터 선언 (0) | 2020.08.12 |