Witam.
Mam taki mały problem, że Dev C++ wyrzuca mi błąd związany z operatorami, a ten sam kod pod Visual Studio działa bez zarzutu:
using namespace std;
class point2d{
private:
double x;
double y;
public:
point2d():x(0),y(0){};
point2d(double x,double y):x(x),y(y){};
point2d(const point2d &p):x(p.x),y(p.y){};
void Write(){cout<<"X= "<<x<<" Y="<<y<<endl;}
// operator podstawiania
inline void operator =(point2d &p){x = p.x; y = p.y;}; // proste podstawienie
// Operatory matematyczne
inline void operator +=(point2d &p){x += p.x; y += p.y;};
point2d operator +(const point2d &p){point2d p1(x + p.x, y + p.y); return p1;};
};
int main(){
point2d p(10,20);
point2d p2 = p;
p += p2;
p.Write();
p = p + p2; // tutaj testowanie działania powoduje błąd: Error] no match for 'operator=' in 'p = point2d::operator+(point2d&)((*(point2d*)(& p2)))'
system("PAUSE");
return 0;
}
Czy da się to jakoś po ludzku w DevC++ zrobić?