2016-08-08 4 views
-3

나는이 생성자가 :C++ 생성자 오류

member(char* name,char* lastName,int age, char* gender); 

을 나는 멤버를 만드는 내 주요 기능에 있습니다. 난 단지 4 개 매개 변수 만점에 3 개를 제공하기 때문에

member("John","Smith",20); 

나는 오류를 얻을 : 후보가 제공 4 개 인수, 3을 기대하고있다. 매개 변수를 놓친 경우에도 매개 변수를 건너 뛸 수 있도록 수정하는 방법.

+0

를 사용하여 매개 변수를 설정합니다. –

+0

어떻게 할 수 있습니까? 내 주요 기능에서 회원 2 명을 만들면 작동합니까 (예 : 회원 ("Mary", "Smith", "Female")). 회원 ("John", "Smith", 20); –

+0

글쎄, 당신이 그 세 가지 주장을 가지고 부르면 어떻게되고 싶니? – juanchopanza

답변

4

마지막 인수에 기본값을 지정해야합니다. 예 :

member(char *name, char *lastName, int age, char* gender = NULL); 

그런 다음 마지막 인수를 지정하지 않으면 기본값 인 NULL이 사용됩니다.

+0

여기에 nitpicking 조금 :'nullptr' sir – WhiZTiM

+0

의 사용을 권장 그건 좋은 지적이야! – grigor

+0

@grigor이 시도했지만 각 매개 변수에 대한 기본값을 수행하도록 요청합니다. 그리고 그렇게 할 때 생성자를 호출 할 때 나는 애매한 오류를 낸다. –

1

더 많거나 적은 매개 변수가 필요한 상황에 대해 함수의 재정의를 만들 수 있습니다.

예를 들어 네 개의 매개 변수를 사용하고 적절하게 처리하는 경우를 제외하고 동일한 이름을 사용하여 두 개의 생성자를 만들 수 있습니다. 다른 매개 변수는 3을 사용하여 고유 한 방식으로 처리합니다.

예 :

member(char name, char lastName, int age){ 
    //Do stuff here for the situation where 3 parameters are inputed 
} 

member(char name, char lastName, int age, char gender){ 
    //Do stuff here for the situation where 4 parameters are inputed 
} 
+0

이 하나의 생성자를 사용해야합니다. @Bhaskar –

1

당신은 예를 들어, 하나의 함수에 대해 여러 서명을 제공 할 수 있습니다 : 기본값

member(char* name, char* lastName, int age) 

member(char* name, char* lastName, int age, char* gender)