class Test {
bool isVal() const {
return isVal;
}
private:
bool isVal;
};
在编译此文件时说
虽然同样适用于Java
class Test {
private boolean isVal;
public boolean isVal() {
return isVal;
}
}
为什么在C++中而不在Java中会发生编译错误?
最佳答案
因为C++不是Java。您可以使用成员(member)的地址:
&Test::isVal
因此,除了可以重载成员函数之外,不能使两个成员具有相同的名称。即使您可以通过某种方式消除歧义,下一个问题也将在其他地方出现。
在C++中,包括我在内的许多人通常都专门 call 数据成员,例如在名称前加上
m
。这样可以避免该问题:class Test {
public:
bool IsVal() const { return mIsVal; }
private:
bool mIsVal;
};