程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 繼承-基類的對象作為派生類函數的形參傳遞。。大家幫忙看看

繼承-基類的對象作為派生類函數的形參傳遞。。大家幫忙看看

編輯:編程綜合問答
基類的對象作為派生類函數的形參傳遞。。大家幫忙看看

class Point{
public:
Point(int xx,int yy){
x = xx;
y = yy;
}

private:
int x,y;
};

class Triangle:public Point{
public:
Triangle(Point p1,Point p2,Point p3):p1(p1),p2(p2),p3(p3){}
}
private:
Point p1;
Point p2;
Point p3;
};
上面兩個類的定義在兩個頭文件中,在main函數中包括
#include
#include

#include "Point.h"
#include "triangle.h"
using namespace std;

int main(){
Point point(7, 11);
Point p1(1,1), p2(5,1), p3(1,4);
Triangle triangle(p1, p2, p3);
system("pause");
return 0;
}
錯誤是:triangle.h [Error] no matching function for call to 'Point::Point()'
這是什麼原因?

最佳回答:


Triangle(Point p1,Point p2,Point p3): Point(oo,xx), p1(p1),p2(p2),p3(p3){}
基類沒有無參構造函數,需要指定使用基類的哪個構造函數。

話說 三角形類從點類派生, 著實有些個蛋疼啊。。。樓主需要注意LSP原則

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved