c++ - 使用引用对象初始化

标签 c++

我有这样的方法:

MyClass& Smth::getMyClass() {
    return myClassObj;
}

现在这两个示例以相同的方式工作(vs2012):

MyClass& a = smthObj.getMyClass();
a.whatever();

MyClass a = smthObj.getMyClass();
a.whatever();

如何解读?

最佳答案

How to interpret this?

MyClass& a = smthObj.getMyClass();
a.whatever();

a 是对smthObj 数据成员的引用。第二行在数据成员上调用 whatever()

MyClass a = smthObj.getMyClass();
a.whatever();

asmthObj 数据成员的拷贝。第二行对该拷贝调用 whatever()

关于c++ - 使用引用对象初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17235736/

相关文章:

c++ - 处理可能的空指针的类的 boost 序列化

c++ - std::is_class在引用类上为false

c++ - std::destroy对基本类型是否无效?

c++ - C 和 C++ header : Define global struct inside of another struct

C++ 取消引用 void 指针,将 int ptr 转换为 void ptr

c++ - 学习阅读 ISO C++ 标准所需的逻辑格式和词汇的最佳方法是什么?

c++ - C++ 中的比较器函数的含义和工作原理?

c++ - C++ 概念和 C++ 模板约束有什么区别?

c++ - 消除 C++ 和 GNU 科学库代码中的内存泄漏

c++ - 用户定义的文字与 uint64_t 参数相结合