我无法将类变量用作同一类函数的默认参数

时间:2016-09-27 09:35:05

标签: c++ this default-arguments this-pointer

我很清楚第7行无效。但我想使用类变量作为方法(apple)的默认参数。

class trial{

public:

int i=10 ;

    void apple(int i=this.i){
       cout<<i<<endl;
    }

    void display(){
         cout<<i<<endl;
    }
};

2 个答案:

答案 0 :(得分:2)

替换

void apple(int i=this.i){
     cout<<i<<endl;
}

...与

void apple(int i){
     cout<<i<<endl;
}

void apple(){
     apple(i);
}

您无法在函数的形式参数列表中访问成员变量。

答案 1 :(得分:0)

您无法像这样设置默认值。 如果要显示对象的变量insted函数的同名参数,请使用:

void apple(int i){
     // class member
     cout << this.i << endl;
     // function variable
     cout << i << endl;
}