1.함수 정의, 호출
코드 블록을 정의하며, 코드의 재사용성을 높이고 구조를 명확히 하는 데 사용됩니다.
반환형 함수이름(매개변수 목록) {
// 함수 본문
return 반환값; // 반환형이 void인 경우 생략 가능
}
// 함수 선언
int add(int a, int b) {
return a + b;
}
int main() {
int result = add(3, 4); // 함수 호출
std::cout << "3 + 4 = " << result << std::endl;
return 0;
}
2.매개변수
2-1.값에 의한 전달 (Pass by Value)
매개변수로 전달된 값이 함수 내부에서 복사되어 사용됩니다. 원본 값은 변경되지 않습니다.
void passByValue(int x) {
x = 10; // 함수 외부의 변수에는 영향이 없음
}
passByValue(a);
2-2.참조에 의한 전달 (Pass by Reference)
매개변수로 전달된 변수의 참조를 사용하여 함수 내부에서 직접 변경할 수 있습니다. 원본 값이 변경됩니다.
void passByReference(int& x) {
x = 10; // 함수 외부의 변수에도 영향이 있음
}
passByReference(a);
2-3.포인터에 의한 전달 (Pass by Pointer)
매개변수로 전달된 변수의 포인터를 사용하여 함수 내부에서 직접 변경할 수 있습니다.
원본 값이 변경됩니다.
void passByPointer(int* x) {
*x = 10; // 함수 외부의 변수에도 영향이 있음
}
passByPointer(&a);
3.함수 오버로딩
C++에서는 같은 이름의 함수를 여러 개 정의할 수 있으며,
매개변수의 타입이나 개수에 따라 구분됩니다.
#include <iostream>
// 두 정수를 더하는 함수
int add(int a, int b) {
return a + b;
}
// 두 실수를 더하는 함수
double add(double a, double b) {
return a + b;
}
int main() {
std::cout << "정수 덧셈: " << add(3, 4) << std::endl;
std::cout << "실수 덧셈: " << add(3.5, 4.5) << std::endl;
return 0;
}
4.기본 매개변수 값
함수를 호출할 때 매개변수를 생략할 수 있도록 기본 값을 설정할 수 있습니다.
// 기본 매개변수 값을 갖는 함수
void printInfo(const std::string& name, int age = 18) {
std::cout << "이름: " << name << ", 나이: " << age << std::endl;
}
int main() {
printInfo("Alice"); // age는 18로 기본 값 사용
printInfo("Bob", 25); // age는 25로 지정
return 0;
}
'Language > C++' 카테고리의 다른 글
[C++] 동적 메모리 관리 (0) | 2024.08.01 |
---|---|
[C++] 반복문 (0) | 2024.08.01 |
[C++] 조건 (0) | 2024.08.01 |