gpt4 book ai didi

c++ - 如何在我的类中初始化引用属性

转载 作者:行者123 更新时间:2023-11-30 02:12:07 26 4
gpt4 key购买 nike

我有一个类,它有一个私有(private)属性,它是对另一个类的引用:

class A {
public:
A();
A(B& anotherB);
private:
B& bRef;
}

在我的 A(B& anotherB) 中,我可以这样做:

  A::A(B& anotherB)
: bRef(anotherB) {
}

但是 A() 呢?我试过这个:

   A::A()
: bRef(B()) {}

但我收到此错误“错误:从类型‘B’的临时类型‘B&’的非常量引用的无效初始化。

如何使用 B 的默认构造函数调用 A 中的初始化 B 引用?

谢谢。

最佳答案

你必须有一个真实的实例来初始化它。说 : bRef(B()) 创建一个立即被销毁的临时对象,因此您的引用将指向一个不再存在的对象,因此编译器错误。

不需要初始化它,除非您根据它未被初始化做出某些决定。在这种情况下,您可以使用 bool initialized; 成员来跟踪状态。

如果您想将其初始化为类似NULL 的值,请改用指针。

关于c++ - 如何在我的类中初始化引用属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2384360/

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