yongyuan3073 2013-12-09 11:05 采纳率: 100%
浏览 2681
已采纳

基类的对象作为派生类函数的形参传递。。大家帮忙看看

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()'
这是什么原因?

  • 写回答

3条回答 默认 最新

  • Todd_Pointer 2013-12-09 13:16
    关注

    Triangle(Point p1,Point p2,Point p3): Point(oo,xx), p1(p1),p2(p2),p3(p3){}
    基类没有无参构造函数,需要指定使用基类的哪个构造函数。

    话说 三角形类从点类派生, 着实有些个蛋疼啊。。。楼主需要注意LSP原则

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog