実現したいこと
例として
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 コメント