我寫了這個代碼在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