C++ 正在使用;营运商及&引用;在一个参考上,一个可移植的C++;构造?

C++ 正在使用;营运商及&引用;在一个参考上,一个可移植的C++;构造?,c++,pointers,reference,C++,Pointers,Reference,假设我有: void function1( Type* object ); //whatever implementation void function2( Type& object ) { function1( &object ); } < > >代码>类型< /COD>没有过载操作符&()代码>将使用操作符和< /代码>在引用上获取对象的实际地址(变量类型/代码>类型)在所有符合标准的C++编译器上。 < P>是的,它采用所引用对象的地址。一旦您有了一个初始化的

假设我有:

void function1( Type* object ); //whatever implementation
void function2( Type& object )
{
    function1( &object );
}

< > >代码>类型< /COD>没有过载<代码>操作符&()<>代码>将使用<代码>操作符和< /代码>在引用上获取对象的实际地址(变量<代码>类型/代码>类型)在所有符合标准的C++编译器上。

<是,在15个字符或更多。< /P> < P>是的,它采用所引用对象的地址。一旦您有了一个初始化的引用,对它的所有操作都将在引用的对象上执行

这实际上是一个相当常用的比喻:

struct A {
    A( X & x ) : myx( &x ) {}
    X * myx;
};

是的,原因是在对任何表达式求值的一开始,引用就被引用的对象所替换,如标准中
5[expr]/6
所定义。这将使
&
-操作员看不到任何差异:

如果一个表达式最初具有类型“引用T”(8.3.2,8.5.3),则在进行任何进一步分析之前,该类型被调整为“T”,该表达式指定由引用表示的对象或函数,并且该表达式为左值

这使得对表达式进行操作的任何操作符都可以“看穿”引用