연재 완료/C++ Lang 예제코드 모음

3. cpp_ex_DefaultParameter

라이피 (Lypi) 2019. 4. 8. 10:33
반응형
#include 

//(디폴트 매개 변수의 기본 문법)
void a(int i = 0) { std::cout << i << std::endl; }  //함수 1번
													//void a() { std::cout << 1 << std::endl; }         //함수 2번
													//void a(int d) { std::cout << d*10 << std::endl; } //함수 3번

void b(int i = 0) { std::cout << i << std::endl; }

void c(int a = 0, int b = 0, int c = 0) { std::cout << a + b + c << std::endl; }

//이런거 안 됨.
//void d(int a = 0, int b, int c) { std::cout << a + b + c << std::endl; }
//void d(int a = 0, int b , int c = 0) { std::cout << a + b + c << std::endl; }

//함수의 원형과 정의를 분리했을 경우 사용 전에 매개변수가 나타나야 한다.

//이렇게 하는건 되는데
void d(int a, int b, int c);

void d(int a = 0, int b = 0, int c = 0)
{
	std::cout << a + b + c << std::endl;
}

//이렇게 하는건 안된다.
void e(int a, int b, int c);

int main()
{
	/*
	a();    //함수 1번과 2번 중 어떤 것을 호출하는지 애매하다.
	a(1);   //함수 1번과 3번 중 어떤 것을 호출하는지 애매하다.
	*/

	b(10);  //b함수를 인수 주고 호출.
	b();    //b함수를 인수 없이 호출.

			//매개변수는 마지막 값부터 생략된다. 즉, 디폴트 매개 변수도 마지막 값부터 줄 수 있다.
	c(1, 2, 3);
	c(1, 2);
	c(1);
	c();

	//됨
	d();

	//이건 안됨.
	//e();
}

void e(int a = 0, int b = 0, int c = 0)
{
	std::cout << a + b + c << std::endl;
}


반응형