Notice
Recent Posts
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
관리 메뉴

도슐랭스타

C++ - Default Parameter 본문

C++

C++ - Default Parameter

도도.__. 2023. 11. 15. 11:58

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