sha*_*oth 2 c++ pointers reference
假设我有:
void function1( Type* object ); //whatever implementation
void function2( Type& object )
{
function1( &object );
}
Run Code Online (Sandbox Code Playgroud)
假设Type没有重载,operator &()这个构造 - operator &在引用上使用 - Type在所有符合标准的C++编译器上获取对象的实际地址(类型的变量)?
是的,原因是在评估任何表达式的最开始时,引用被替换为引用的对象,如5[expr]/6标准中所定义.这将使它 - &操作员没有看到任何区别:
如果表达式最初具有"对T的引用"类型(8.3.2,8.5.3),则在进行任何进一步分析之前将类型调整为"T",表达式指定由引用表示的对象或函数,并且表达式是一个左值.
这使得任何操作表达式的操作符"透视"引用.