我有这样的方法:

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


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

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

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


如何解释呢?

最佳答案

如何解释呢?


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/

10-11 18:48