Jan*_*ter 0 c++ methods reference
我有以下方法,通过值返回本地声明的Object:
Human Human::getLocalDeclaredHuman() {
Human human;
std::cout << &human << std::endl;
return human;
}
Run Code Online (Sandbox Code Playgroud)
我称之为这种方法:
Human a;
Human b = a.getLocalDeclaredHuman();
std::cout << &b << std::endl;
std::cout << b.getName() << std::endl;
Run Code Online (Sandbox Code Playgroud)
这是正在运行的程序的输出:
0x22fe58
0x22fe58
John Doe
因此,在方法中声明为local的变量human与变量b具有相同的地址.我认为按值返回将创建对象的副本,并且对象b具有另一个地址,例如在本地声明的对象人类.
我的问题:
如果这里b和人类有相同的地址,那么返回值和返回参考值之间的差异在哪里?
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |