c++ - 这个 getter 返回的是构造函数给出的引用还是类内部对象的引用? C++

标签 c++ reference

class A{

    A(B& ref) : b(ref){}
    B getB(){return this->b;}
    B b;
};

getB() 是否返回对 A.b 的引用或构造函数提供的相同引用?如果原始 B 已在 A 之外更改但 A.getB() 仍返回旧 B,那将是一个问题。 如果是这种情况,有没有办法避免这种情况?

最佳答案

不是,A对应实例的b成员中只保存了一份ref,一份this是getB 返回了什么。

要返回 B 的实例,A 的实例是用它初始化的(不是你想做的,但是 ffr),你会这样做:

class A{

    A(B& ref) : b(ref){}
    B& getB(){return this->b;}
    B& b;
};

关于c++ - 这个 getter 返回的是构造函数给出的引用还是类内部对象的引用? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13075681/

相关文章:

c++ - 寻找更好的编码和压缩数字的方法

c++ - libzip 外部库包含在 xcode 项目中

c++ - OpenCV:使用 cmake 时对 `cv::imread 的 undefined reference

c++ - 通过引用和内存使用

java - 下面代码中的 super 指向什么?

java - 尝试使用 Java 中的构造函数创建对象的 "copy",但是我传入的内容会发生什么?

sql - 在哪里可以找到有关 ODBC SQL 方言/语法的信息,包括。内置函数/运算符?

c++ - 将 std::ispunct 作为参数传递给 remove_copy_if() 无法编译

android - 如何在 Android 平台工具中构建 dexdump?

c++ - 这是隐式调用复制构造函数吗?