考虑以下代码:
class Addressable;
class Class1 { void foo(Addressable &a) { (void) &a; } }; // OK
class Addressable { void *operator &() { return this; } };
class Class2 { void foo(Addressable &a) { (void) &a; } }; // Error: operator & private
C++为什么允许获取不完整引用类型的地址?
这可能是非法的,如上所示。这是有意为之吗?
&
进行重载”:D - Antti Haapala -- Слава Україніoperator &()
。有时候我觉得 C++ 给了开发者太多的自由。 - tenfourfoo[&_1]
。 - user541686