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原则
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。