gpt4 book ai didi

C++多边形矩形和三角形继承

转载 作者:行者123 更新时间:2023-11-28 02:37:52 24 4
gpt4 key购买 nike

我正在尝试制作一个多边形类和一个继承第一个的矩形和三角形。 Polygon 类具有高度和宽度变量,我希望它们在构造函数中被赋予值。然后,矩形和三角形有面积计算方法。然后,我使用 main() 来给出一些例子。我使用:

#include <iostream>
using namespace std;

class Polygon {
public:
Polygon(int, int);
protected:
int height;
int width;
};

class Rectangle: public Polygon {
public:
void calc_area();
};

class Triangle: public Polygon {
public:
void calc_area();
};

Polygon::Polygon(int a, int b) {
height = a;
width = b;
}

void Rectangle::calc_area() {
cout << "Rectangle area: " << (height*width) << endl;
}

void Triangle::calc_area() {
cout << "Triangle area: " << (height*width/2) << endl;
}

int main() {
Rectangle s1(5, 2);
Triangle s2(5, 2);
s1.calc_area();
s2.calc_area();
}

但是虽然在我的新手看来一切正常,但我遇到了一系列错误:

12 base Polygon' with only non-default constructor in class without a constructor `

36 调用`Rectangle::Rectangle(int, int) 没有匹配的函数

37 调用 Triangle::Triangle(int, int) 时没有匹配的函数

有人可以给我一些提示吗?正如所见,我对 C++ 很陌生......

最佳答案

你不应该调用构造函数来使用.,例如:

Rectangle s1;
Triangle s2;
s1.Polygon(5, 2);
s2.Polygon(5, 2);

试试这个方法:

Rectangle s1(5, 2);
Triangle s2(5, 2);

你应该分别为 RectangleTriangle 添加构造函数:

class Rectangle: public Polygon {
public:
Rectangle(int height, int width):Polygon(height, width){}
void calc_area();
};

class Triangle: public Polygon {
public:
Triangle(int height, int width):Polygon(height, width){}
void calc_area();
};

关于C++多边形矩形和三角形继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26922008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com