回答編集履歴

3 文言修正

SHOMI

SHOMI score 3502

2020/07/15 09:48  投稿

`A`に引数が`double`一つだけのコンストラクタがありません。
`y`を渡し忘れています。
`const`にしておかないと、`A`型の変数`a`,`b`,`c`に対して`(a+b)=c;`としたときにエラーになりません。
戻り値の型を`const`にしておかないと、`A`型の変数`a`,`b`,`c`に対して`(a+b)=c;`としたときにエラーになりません。
```C++
   const A operator+(const A& a1) const {
       return A(x + a1.x, y + a1.y);
   }
   const A operator-(const A& a1) const {
       return A(x - a1.x, y - a1.y);
   }
```
2 コード修正

SHOMI

SHOMI score 3502

2020/07/15 09:43  投稿

`A`に引数が`double`一つだけのコンストラクタがありません。
`y`を渡し忘れています。
`const`にしておかないと、`A`型の変数`a`,`b`,`c`に対して`(a+b)=c;`としたときにエラーになりません。  
```C++
   A operator+(A a1) {
   const A operator+(const A& a1) const {
       return A(x + a1.x, y + a1.y);
   }
   A operator-(A a1) {
   const A operator-(const A& a1) const {
       return A(x - a1.x, y - a1.y);
   }
```
1 コード追記

SHOMI

SHOMI score 3502

2020/07/15 09:35  投稿

`A`に引数が`double`一つだけのコンストラクタがありません。
`A`に引数が`double`一つだけのコンストラクタがありません。
`y`を渡し忘れています。
```C++
   A operator+(A a1) {
       return A(x + a1.x, y + a1.y);
   }
   A operator-(A a1) {
       return A(x - a1.x, y - a1.y);
   }
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る