2016-09-27 9 views
-4

私は7行目が無効であることをよく知っています。私はメソッド(apple)のデフォルト引数としてクラス変数を使用したいと思います。同じクラスの関数のデフォルト引数としてクラス変数を使用できません

class trial{ 

public: 

int i=10 ; 

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

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

正しいです。質問ありますか? – juanchopanza

+2

たくさんのコードを貼り付けるだけではあまり役に立ちません。あなたが直面している問題、どのようなエラーメッセージが表示されたのか、希望の結果は何ですか?ここにはたくさんの詳細がありません。 – Oldskool

答えて

2

交換

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

&hellip。 with

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

void apple(){ 
    apple(i); 
} 

関数の仮引数リストのメンバー変数にアクセスすることはできません。

+0

しかし、それは私がしたいことです。 –

+0

@ YashBhardwajちょうどそれが起こることを主張していません。 –

0

このようにデフォルト値を設定することはできません。 オブジェクトの変数insted関数の引数を同じ名前で表示する場合は、次のように指定します。

void apple(int i){ 
    // class member 
    cout << this.i << endl; 
    // function variable 
    cout << i << endl; 
} 
関連する問題