簡體   English   中英

C ++調用另一個類的構造函數

[英]C++ calling another class constructor

我開始學習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);

為什么Line類將從Point類繼承? 解決方案:1-不要繼承Point 2-向Line類添加兩個屬性:Point _p1,_p2,然后從構造函數Line :: Line(Point A,Point B)對其進行初始化。 _p2 = B;}

ps不搞亂業務邏輯和訪問模式

如果要從派生類調用基構造函數,則為pps,即:

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

要么

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM