constした変数を演算子オーバロードするには

実現したいこと

例として
const MyStruct A,B;
MyStruct C = A+B;
を行いたいです。この場合、A,Bの値は変更していないため、const によるエラーが発生しないように思えるのですが、実際は発生してしまいます。

発生している問題・分からないこと

エディタでエラーが出ます

エラーメッセージ

error

1二項演算子 '+': 型 'const test' の左オペランドを扱う演算子が見つかりません (または変換できません)

該当のソースコード

struct test { int x, y, z; test() :x(0), y(0), z(0) {} test(int _x, int _y, int _z) :x(_x), y(_y), z(_z) {} test operator+(const test other) { return (test(this->x + other.x, this->y + other.y, this->z + other.z)); } }; //エントリーポイント int main(int argc, char* argv[]) { const test A(1, 1, 1); const test B(1,1,1); test C = A + B; cout << C.x << endl; return 0; }

試したこと・調べたこと

上記の詳細・結果

因数を参照渡しから変更したり、いろいろ試しましたが改善は見られません。

補足

特になし

コメントを投稿

0 コメント