📅  最后修改于: 2023-12-03 15:29:42.597000             🧑  作者: Mango
C++是一种广泛使用的面向对象编程语言,具有高效的编译器和兼容C语言的语法。类和对象是C++中的两个重要的概念,可以用来封装数据和方法。问题5主要涉及到C++中类和对象的继承和多态性。
在C++中,可以通过继承来创建一个派生类。派生类可以继承基类的属性和方法,并且还可以添加自己的属性和方法。在本问题中,需要创建一个基类Shape,其中包括两个属性:名称和颜色,以及一个计算面积的虚函数area()。同时,需要创建两个派生类Rectangle和Square,它们都继承自Shape类,并且都需要添加自己的属性和实现自己的面积计算方法。
class Shape {
public:
string name;
string color;
virtual double area() = 0;
};
class Rectangle : public Shape {
public:
double width;
double height;
Rectangle(string n, string c, double w, double h) {
name = n;
color = c;
width = w;
height = h;
}
double area() {
return width * height;
}
};
class Square : public Shape {
public:
double side;
Square(string n, string c, double s) {
name = n;
color = c;
side = s;
}
double area() {
return side * side;
}
};
int main() {
Shape* shape = new Shape();
Rectangle* rectangle = new Rectangle("rectangle", "red", 2, 4);
Square* square = new Square("square", "blue", 3);
cout << rectangle->name << " " << rectangle->color << " area is " << rectangle->area() << endl;
cout << square->name << " " << square->color << " area is " << square->area() << endl;
return 0;
}
本问题主要涉及到C++中类和对象的继承和多态性。继承可以让派生类继承基类的属性和方法,并且还可以添加自己的属性和方法。多态性可以让派生类重写基类的虚函数,并且在运行时选择正确的函数调用。通过这些关键概念,我们可以创建复杂的类层次结构,使程序更加简洁、易懂和可维护。