对我感兴趣我的职位之一的评论:编译器如何确定哪些成员函数发生了变异?
Me too。我也给访问者/ mutators相同的名字。
我在想这件事,因为我总是用setBar(int bar)
代替名字相同的mutator。我想知道:编译器可以根据const标识符确定在运行时发生了什么变化,还是可以使用相同的函数名称,因为它有一个参数?
请问这种编译罚款:
class Foo
{
int bar_;
public:
int bar() { return bar_; }
void bar(int bar) { bar_ = bar; }
}
还是我必须这样做(我知道我应该反正这样做,只是我在这个运行):
int bar() const { return bar_; }
我不不知道哪个是哪个。 Const的正确性很重要,所以我想我会希望编译器反对重载,因为一个变异而另一个不变。
它为什么这样工作?
您的代码格式不正确。它应该看起来像int bar()const {return bar_; } 我猜。返回类型在代码中丢失。 – 2009-08-05 04:52:50
你看过我的整篇文章,还是只是想让我失望? =( – jkeys 2009-08-05 05:21:26