【发布时间】:2020-08-09 02:15:33
【问题描述】:
如何访问Triangle 类的sideA 和height 成员,以及如何访问Square 类的sideA,这些都是从Shape 类派生的?
实现它的正确方法是什么?
Shapes.h:
class Shape
{
public:
virtual double getArea() = 0;
};
class Triangle : public Shape
{
public:
double sideA = 3;
double height = 2;
double getArea() {
return 0.5 * sideA * height;
}
};
class Square : public Shape
{
public:
double sideA = 4;
double getArea() {
return sideA * sideA;
}
};
Main.cpp:
int main()
{
Shape* sh = new Triangle();
std::cout << sh->getArea() << std::endl;
std::cout << sh->??? //get the height of triangle
delete sh;
}
【问题讨论】:
标签: c++ class inheritance polymorphism