我用C++编写了类,我希望它有一个字段,Osoba&但是我得到一个奇怪的错误:
class Rachunek{
public:
Osoba& wlasciciel;
double stan_konta;
Rachunek(Osoba* wlasciciel, double stan_konta){ //Uninitialized reference member
this->wlasciciel = wlasciciel;
this->stan_konta = stan_konta;
}
};
Run Code Online (Sandbox Code Playgroud)
Cod*_*wer 10
像这样使用初始化列表:(最佳方法)
class Rachunek{
public:
Osoba& wlasciciel;
double stan_konta;
Rachunek(Osoba* wlasciciel, double stan_konta):
wlasciciel(*wlasciciel) ,
stan_konta(stan_konta) { //Uninitialized reference member
}
};
Run Code Online (Sandbox Code Playgroud)
您有作为成员的引用,并且必须立即初始化引用.此表示法允许在声明时进行初始化.如果您使用普通成员而没有&它会像你那样正常工作.虽然这里呈现的风格更有效.
另外:(效率较低的方法)
class Rachunek{
public:
Osoba wlasciciel; // Note missing & on the type.
double stan_konta;
Rachunek(Osoba* wlasciciel, double stan_konta)
{
this->wlasciciel = *wlasciciel;
this->stan_konta = stan_konta;
}
};
Run Code Online (Sandbox Code Playgroud)