我希望创建一个类,该类有两个整数成员变量和一个函数,该函数有两个可选参数。如果提供了这些参数,则该函数返回它们的总和;如果没有提供这些参数,则该函数返回其两个成员变量的总和。
以下是代码:
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_;
^
这表明成员变量必须是静态的才能在函数中用作默认参数。但我不想让它们是静态的...那么有什么解决方法呢?