C++调用另一个类构造函数

C++ calling another class constructor

本文关键字:构造函数 另一个 调用 C++      更新时间:2023-10-16

我开始学习C++类,但我有一个问题。我阅读了有关构造函数和初始化列表的信息,但我仍然无法解决我的问题。

foo.h中的代码:

class point{
    public:
    double x,y;
    point(double x1, double y1);
};
class line: public point{
    public:
    double A,B,C;
    double distance(point K);
    line(point M, point N);
};

在 foo.cpp:

point::point(double x1, double y1){
    x=x1;
    y=y1;
}
line::line(point M, point N){
    if(M.x!=N.x){
        A=-(M.y-N.y)/(M.x-N.x);
        B=1;
        C=-(M.y-A*M.x);
    }
    else{
        A=1;
        B=0;
        C=-M.x;
    }
}

当然它不起作用,因为我不知道如何在行构造函数中调用点构造函数。我该怎么做?我想这样做:

point A(5,3),B(3,4);
line Yab(A,B);
为什么class

Line会从class Point继承?溶液:1 - 不从点继承2 - 将两个属性添加到 Line 类:点 _p1,_p2,然后从构造函数 Line::Line(点 A,点 B) { _p1 = A; _p2 = B;}

初始化它

PS 不会弄乱业务逻辑和访问模式

如果要从派生类调用基构造函数,则为 PPS:

class Base {}
class Derived: public Base 
{
      Derived() : Base() {}
}

Derived::Derived() : Base()
{
}