我需要从一个 .txt 文件中读取行,并用它来初始化我的类成员。每一行的第一个字符都是一个数字。
class myClass{
private:
const int ID;
public:
myClass(const int id){
this->ID = id;
}
};
这样做会导致构造函数出现“提供了Kontakt::ID的初始化器”的错误,并且
this-> ID = id;
会出现“表达式必须是可修改的Ivalue”的错误。我需要从一个 .txt 文件中读取行,并用它来初始化我的类成员。每一行的第一个字符都是一个数字。
class myClass{
private:
const int ID;
public:
myClass(const int id){
this->ID = id;
}
};
this-> ID = id;
会出现“表达式必须是可修改的Ivalue”的错误。const
类成员。这是一个完整的示例(请参见在线):class myClass {
private:
const int ID;
public:
myClass(const int id) : ID(id) {
// ^^^^^^
}
};
int main() {
myClass x(42);
}
const
类成员变量的默认初始化。class myClass {
private:
const int ID = -42; // <<<
public:
myClass() = default; // <<<
myClass(const int id) : ID(id) {
}
};
int main() {
myClass x;
}
myClass() : expensivemember(complexlogic()) {}
- user4581301this->
可能是一种风格,表示所使用的是成员。这类似于使用m_name
这样的命名约定。在现代 IDE 中,人们通常不这样做,但这并不是风格上的错误。 - user904963