在下面的代码中,recordedModel()
返回对Model
的引用。该函数希望返回一个指针,C ++中是否有一种方法可以将引用转换为指针?
答案 0 :(得分:2)
C ++中是否有一种方法可以将引用转换为指针?
由于引用不是对象,因此它们没有地址,并且不能有指向引用的指针。
但是,可以的,您可以获得指向所引用对象的指针。有一个地址运算符&
,该运算符返回对象的地址。地址值的类型是指针。 address-of运算符是间接寻址运算符*
的逆运算符,它以内存地址(指针)为操作数,并导致一个左值对象存储在该地址。当应用于引用时,address-of运算符将返回所引用对象的地址。
请注意,address-of运算符可以重载,因此在通用代码中,如果重要的是获取对象的实际地址而不是其他类型的内容,则您可能不知道类型具有的重载。重载可能会返回,那么应该使用std::addressof
函数而不是address-of运算符。