【发布时间】:2013-01-17 16:34:54
【问题描述】:
今天我注意到“this”的类型有些奇怪。如果你有这样的事情:
class C {
void funcA() {
funcB(this);
}
void funcB(C obj) {
//do something
}
};
你当然会得到一个错误,因为 funcB() 需要一个对象,而 'this' 是一个指针。我不小心忘记了星号,但对错误消息感到惊讶,因为它说:
no matching function for call to 'C::funcB(C* const)'
当funcA()不是常量时,const从何而来?
【问题讨论】:
-
这是对的,因为 this 是不变的。例如,你不能这样做:this = 0;