我写了这个代码在C++:const如何使一个函数重载?
class Foo
{
public:
int& fun(){return var;} // 1st fun
int fun() const {return var;} // 2rd fun
private:
int var;
};
int main()
{
Foo foo;
int i = foo.fun();
return 0;
}
我知道C++不能判定由返回值重载函数,但为什么当我添加了一个常量到2RD功能,超载可以工作? 'const'做了什么?
我得出这样的结论:函数名称后面的const意味着implict对象(aka。'this')参数是const,所以这两个函数之间的参数实际上是不同的,这会使重载起作用。是真的? – 2012-08-15 01:10:09
@GaryGauh是的,这个结论是正确的。 – dasblinkenlight 2012-08-15 01:14:47