c ++默认参数

poy*_*poy 0 c++

可能重复:
非静态成员作为非静态成员函数的默认参数

好.所以我在理解如何完成看似简单的任务时遇到了问题......这就是我想要完成的事情:

#include <iostream>

using namespace std;

class A{
private:
    int _x;
public:
    A(int x){
        _x = x;
    }

    void test(int x=_x){
        cout << x << endl;
    }
};

int main(){
    A a(3);
    a.test();
}
Run Code Online (Sandbox Code Playgroud)

编译器抱怨该int x=_x部分说error: invalid use of non-static data member A::_x

那么如何使用这样的默认参数呢?

谢谢.

Dan*_*ite 13

你不能这样做.

但是,您可以使用test不带参数的重载.

void test(){
    test(_x);
}
Run Code Online (Sandbox Code Playgroud)