おそらく 配列化 vec2 a[3]とすると引数がない関数が呼び出されてるのが原因だと思うのですが、どうすれば配列化したクラスを足すプログラムを実現させる事ができるのか分かりません どうすればよいでしょうか?
#include<iostream>
class vec2{
public:
vec2();
vec2(int x,int y);
vec2 operator+(const vec2 &obj);
void set(int x,int y);
int getx(void){return m_x;}
int gety(void){return m_y;}
private:
int m_x;
int m_y;
};
vec2::vec2(void){
m_x=0;
m_y=0;
}
vec2::vec2(int x,int y){
set(x,y);
}
void vec2::set(int x,int y){
m_x=x;
m_y=y;
}
vec2 vec2::operator+(const vec2 &obj){
vec2 tmp;
tmp.m_x=m_x+obj.m_x;
tmp.m_y=m_y+obj.m_y;
return tmp;
}
int main(){
using namespace std;
vec2 a1(2,2);
vec2 a2(1,3);
vec2 a3(0,0);
vec2 b[3]={a1,a2,a3};
cout<<"a2("<<a2.getx()<<" "<<a2.gety()<<")"<<endl;
cout<<"b[0]("<<b[0].getx()<< " "<<b[0].gety()<<")"<<endl;
b[0]+a2=a2;
cout<<"b[0]+a2=a2("<<a2.getx()<<" "<<a2.gety()<<")"<<endl;//足せてない
cout<<"a1("<<a1.getx()<<","<<a1.gety()<<")"<<endl;
cout<<"a2("<<a2.getx()<<","<<a2.gety()<<")"<<endl;
cout<<"a3("<<a3.getx()<<","<<a3.gety()<<")"<<endl;
a3=a1+a2;
cout<<"a1+a2=a3("<<a3.getx()<<","<<a3.gety()<<")"<<endl;//こちらは足せている
getchar();
return 0;
}