C ++コンパイルエラー 'エラー:コンストラクターのみがメンバー初期化子を取ります'



C Compilation Errorerror



C ++コンパイルエラー 'エラー:コンストラクターのみがメンバー初期化子を取ります'

void Laborage::input(string No1, string Name1, double should_wages1, double social_security_funds1): No(No1), Name(Name1), should_wages(should_wages1), social_security_funds(social_security_funds1) { real_wages = should_wages - social_security_funds }

関数の初期化リストメソッドを使用してクラスに値を割り当てましたが、上記の情報が間違って報告され、最初は何が起こっているのかわかりませんでした。



情報を確認したところ、初期化リストに問題があるとの声がありました。次に、初期化リストの定義の概要を調べたところ、初期化リストがコンストラクターによって使用されているように見えました。この二次割り当て機能が使えるかどうかわかりません。

次に、初期化リストの形式を一般的な割り当て形式に変更しました。



void Laborage::input(string No1, string Name1, double should_wages1, double social_security_funds1) { No = No1 Name = Name1 should_wages = should_wages1 social_security_funds = social_security_funds1 real_wages = should_wages - social_security_funds }

コンパイル後、エラーがないことがわかります。これは、問題が実際に初期化リストの使用にあることを示しています。

たぶん、コンストラクターだけが初期化リストを使用できます。議論用です。誰か知っているなら、下にメッセージを残してください!