我有一个看起来像这样的课程:
Person(int pID,
int zipCode,
float ySalary,
const string& fName,
const string& mName,
const string& lName)
当我尝试创建一个默认构造函数时,如下所示:
Person::Person(void){
zipCode = NULL;
pID = NULL;
ySalary = NULL;
fName = "";
mName = "";
lName = "";
}
我收到错误,说没有与const std :: string = const char [1]匹配的运算符“=”;
答案 0 :(得分:5)
您需要使用成员初始值设定项列表来初始化const
引用成员变量:
Person::Person(void) :
zipCode(NULL) ,
pID(NULL) ,
ySalary(NULL) ,
fName("") ,
mName("") ,
lName("") {
}
我建议始终使用成员初始化列表语法,首选构造函数体中的赋值。例如:What is the advantage of using initializers for a constructor in C++?
答案 1 :(得分:0)
除了前面的答案,你可以使用类内初始化(从c ++ 11开始)。
示例:const string& fname ="&#34 ;;