C ++构造函数错误

时间:2016-08-08 21:25:23

标签: c++

例如,我有这个构造函数:

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

我在我的主要功能上创建了这个成员。

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

由于我只提供了4个参数中的3个,我得到错误: 候选人需要4个参数,3个提供。  如何修复它,即使我错过了一个参数,也只是跳过它。

3 个答案:

答案 0 :(得分:4)

您需要为最后一个参数指定默认值。类似的东西:

string

然后,当未指定最后一个参数时,它将采用默认值NULL。

答案 1 :(得分:1)

您可以在需要更多或更少参数的情况下创建函数的覆盖。

例如,对于您的情况,您可以创建两个具有相同名称(显然)的构造函数,除了一个接受4个参数并适当地处理它,另一个接受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
}

答案 2 :(得分:1)

您可以为一个功能提供多个签名,例如:

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

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