前提・実現したいこと
c++を勉強している者です。
c++のstructについて、非静的メンバをメソッドのデフォルト引数に使用したいのですが、エラーが生じてしまい、解決法が分からず質問させていただきました。
初歩的な質問かもしれませんが、教えていただけると助かります。よろしくお願いいたします。
発生している問題・エラーメッセージ
error: invalid use of non-static data member ‘s::b’
該当のソースコード
c++
1#include <iostream> 2using namespace std; 3 4struct s{ 5 s(int a=1){ 6 b=a+1; 7 } 8 9 int increment(int x=b){ 10 cout << x+1 << endl; 11 } 12 13private: 14 int b; 15};
試したこと
調べたところ非静的メンバの使用が不適切とあったので、int x=bの部分をint x=this->bにしてみたのですが、今度はerror: ‘this’ may not be used in this contextと出てしまいうまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
環境はWindowsのWSLを使用しています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/20 23:31