I have a Point2D class as follows:
class Point2D{
int x;
int y;
public:
Point2D(int inX, int inY){
x = inX;
y = inY;
};
int getX(){return x;};
int getY(){return y;};
};
Now I have defined the class Lineas:
class Line {
Point2D p1,p2;
public:
LineVector(const Point2D &p1,const Point2D &p2):p1(p1),p2(p2) {
int x1,y1,x2,y2;
x1=p1.getX();y1=p1.getY();x2=p2.getX();y2=p2.getY();
}
};
Now the compiler gives an error in the last line (where it is called getX(), etc.):
error: passing const Point2Das an thisargument int Point2D::getX()discards qualifiers
If I delete the keyword constin both places, it will compile successfully.
What mistake? This is because getX()etc. Defined in line? Is there any way to fix this while keeping them inline?
source
share