我想要創建一個類,它有兩個整型成員變量和一個具有兩個可選參數的函數。如果提供了這些參數,函數返回它們的總和;如果未提供這些參數,則該函數將返回其兩個成員變量的和。默認參數作爲非靜態成員變量
下面是代碼:
class Foo
{
private:
int x_;
int y_;
public:
Foo(int x, int y) : x_(x), y_(y){}
int Bar(int a = x_, int b = y_)
{
int z = a + b;
return z;
}
};
不過,我得到以下編譯錯誤:
invalid use of non-static data member 'Foo::x_'
int x_;
^
invalid use of non-static data member 'Foo::y_'
int y_;
^
這表明,成員變量必須是靜態的,在使用它們的默認參數一個函數。但我不希望它們是靜態的...
解決方案是什麼?
是的,他們必須是靜態的,請參閱(http://stackoverflow.com/q/ 27018251/1708801) –