C++で演算子オーバーロードを使ったソフトを作っています。
Class AとClass Bがあったとき、下記のようにすると、
Class Bのほうは問題なく=をオーバーロードできますが、
Class Aのほうでは、Class Bが不完全な型であるため、オーバーロードが定義できません。
現在は、1行目にclass Bを前方参照していますが、これが無い場合は未定義だと言ってエラーになります。
C++
1class B; 2 3class A{ 4 public: 5 double val; 6 7 A operator=(B b){ 8 this->val = b.val * 2; 9 return *this; 10 } 11} 12 13class B{ 14 public: 15 double val; 16 17 B operator=(A a){ 18 this->val = a.val / 2; 19 return *this; 20 } 21} 22
仮に先頭に
Class B{};
などとしても、空のクラスであるため、valが未定義だといってエラーになります。
2つのクラス間で、相互に代入演算をオーバーロードするにはどうしたらいいのでしょうか。
ご教授いただけたら助かります。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。