ps:重载operator&的函数就是直接返回了this指针的
CTest* operator&()
{
return this;
}
4 个解决方案
#1
是不能还是不要?
#2
坐等答案,留个标记
#3
看了http://*.com/questions/176559/you-cant-forward-declare-classes-that-overload-operator
结论还是不要,而不是不能
因为&操作符允许对没有明确定义的类进行操作,前置声明一个类并对其进行&操作时,行为是未定义的
该编译单元并不知道这个类重载了&操作符,可能会当成普通的取地址符进行操作
结论还是不要,而不是不能
因为&操作符允许对没有明确定义的类进行操作,前置声明一个类并对其进行&操作时,行为是未定义的
该编译单元并不知道这个类重载了&操作符,可能会当成普通的取地址符进行操作
#4
哦!!原来是这样子啊,那就是说重载过&操作符的类,在前置声明的时候可能会达不到自己预期的目的喽,刚刚看了一下英文原版的,是说前置声明会不安全,谢了。。。
#1
是不能还是不要?
#2
坐等答案,留个标记
#3
看了http://*.com/questions/176559/you-cant-forward-declare-classes-that-overload-operator
结论还是不要,而不是不能
因为&操作符允许对没有明确定义的类进行操作,前置声明一个类并对其进行&操作时,行为是未定义的
该编译单元并不知道这个类重载了&操作符,可能会当成普通的取地址符进行操作
结论还是不要,而不是不能
因为&操作符允许对没有明确定义的类进行操作,前置声明一个类并对其进行&操作时,行为是未定义的
该编译单元并不知道这个类重载了&操作符,可能会当成普通的取地址符进行操作
#4
哦!!原来是这样子啊,那就是说重载过&操作符的类,在前置声明的时候可能会达不到自己预期的目的喽,刚刚看了一下英文原版的,是说前置声明会不安全,谢了。。。