【发布时间】:2018-02-21 17:08:14
【问题描述】:
我无法正确获取构造函数的参数。它一遍又一遍地弹出相同的错误。类的参数不能改,只能改构造函数。
错误 C2789 'Aluno::numero':必须初始化 const 限定类型的对象
错误 C2530 'Aluno::escola':必须初始化引用
class Aluno {
string nome;
string& escola;
const int numero;
public:
Aluno(string nome, string escola, int numero){
this->nome = nome;
this->escola = escola;
this->numero = numero;
}
};
int main()
{
Aluno * a = new Aluno("aaa", "bbb", 123);
return 0;
}
【问题讨论】:
-
为什么
escola是参考?通常,您会在构造函数初始化器列表中初始化它们,但如果您不能更改构造函数的参数 - 充其量只能绑定到局部变量,这会在尝试使用它时导致 UB。跨度> -
谷歌“成员初始化列表”。
-
@SergeyA 如果您觉得我的回答不好,我欢迎对我的回答提出建设性的批评。
-
@JesperJuhl 我看不出它如何回答 OP 问题。诚然,OP 的问题可能无法回答,但应该避免回答。
标签: c++ class constructor