도슐랭스타
C++ - Default Parameter 본문
Default Parameter
- 함수를 호출할 때 특정 인자(argument)가 제공되지 않으면 자동으로 사용되는 기본값을 말한다.
#include <iostream>
int add(int i = 1, int j = 2) // 형식매개변수
{
return(i + j);
}
int main()
{
std::cout << add() << ","; // 실매개변수 없음, 3
std::cout << add(10) << ","; // 실매개변수 한 개, 12
std::cout << add(10, 20); // 실매개변수 두개, 30
return 0;
}
#include <iostream>
void greet(std::string name = "도도") {
std::cout << "Hello, " << name << std::endl;
}
int main() {
greet(); // "Hello, 도도" 출력
greet("User"); // "Hello, User" 출력
return 0;
}
주의사항 - (1)
//에러O
int add(int i = 1, int j)
{
return(i + j);
}
하나의 매개변수의 기본값을 정의하면 모든 매개변수의 기본값을 정의해야한다.
//에러X
int add(int i = 1, int j = 2)
{
return(i + j);
}
주의사항-(2)
#include <iostream>
int add(int i = 1, int j = 2); // 선언부에 작성
int main() { }
int add(int i, int j)// 정의부에는 작성하지 않음
{
return(i + j);
}
선언부에는 기본값을 작성하지만 정의부에서는 작성하지 않는다.
Default Parameter를 갖는 생성자 함수
//function overloading
class Dog {
private:
int age;
public:
Dog() { age = 1; }
Dog(int a) { age = a; }
//매개변수의 개수에 따른 함수오버로딩
};
//default parameter
class Dog {
private:
int age;
public:
Dog(int a = 1 ) { age = a; }
// 디폴트 매개변수를 갖는 생성자
};
디폴트 매개변수의 사용은 함수 중첩의 축약형이다.
디폴트 매개변수의 선언과 정의 예시
#include <iostream>
class Dog {
private:
int age;
public:
Dog(int a = 1);
};
Dog::Dog(int a) {
age = a;
};
도슐랭스타
★★★★☆: 재밌다..!
아는 것이 힘이군요..?ㅋㅋㅋㅋㅋㅋㅋㅋ 디폴트 매개변수를 알고나니 더 간단하게 코드를 짤 수 있다니,, 조큼 재밌네요..히히
반응형
'C++' 카테고리의 다른 글
C++ - 상속성 (3) | 2023.11.22 |
---|---|
C++ - Overloading, Overriding (1) | 2023.11.18 |
C++ - 함수중첩(Function Overloading) (0) | 2023.11.15 |
C++ - const new (0) | 2023.11.08 |
C++ - 객체와 멤버 생성자 소멸자 this (1) | 2023.11.01 |
Comments