我试图重载取消引用运算符,但编译以下代码会导致错误'initializing' : cannot convert from 'X' to 'int'
:
struct X {
void f() {}
int operator*() const { return 5; }
};
int main()
{
X* x = new X;
int t = *x;
delete x;
return -898;
}
我究竟做错了什么?
您应该将解引用运算符应用于类类型。在你的代码中x
有一个指针类型。写下以下内容:
int t = **x;
or
int t = x->operator*();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)