gpt4 book ai didi

c++ - C++ 中未初始化的引用成员

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:07:26 25 4
gpt4 key购买 nike

我用 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;

}
};

最佳答案

像这样使用初始化列表:(最佳方法)

class Rachunek{
public:
Osoba& wlasciciel;
double stan_konta;
Rachunek(Osoba* wlasciciel, double stan_konta):
wlasciciel(*wlasciciel) ,
stan_konta(stan_konta) { //Uninitialized reference member


}
};

您有一个作为成员的引用,必须立即初始化一个引用。这种表示法允许在声明时进行初始化。如果您改为使用不带 & 的普通成员,它会像您那样正常工作。尽管此处呈现的样式更有效。

或者:(效率较低的方法)

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;

}
};

关于c++ - C++ 中未初始化的引用成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16634181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com