如何在对象合并中正确使用+ operator?

class Point {

private:    

    float xcord;
    float ycord; }



class Line{
friend class Nonlinear;

protected:  

float dist;
Point *p1,*p2;  

virtual const Line& operator+(const Line& l) const; 

对于虚拟运算符+,我如何更新新创建对象的新p1和p2值? 我可以通过使用来更新dist值

Line *l1=(Line*)&l
l1->dist=dist+l.dist

但我不明白为什么我在合并积分时会陷于困境。