【发布时间】:2021-11-01 10:43:40
【问题描述】:
您将在下面看到 3 个类。 我的问题是为什么我可以在FunnySquare 类的getArea() 上使用override,即使它在Square 类中未标记为虚拟 .
我的假设是一个被覆盖的纯虚函数是虚函数,即使它没有被指定,但我不确定这是真的,也找不到任何参考来确认。
class Shape {
public:
virtual float getArea() = 0;
};
class Square : public Shape {
private:
float length;
public:
Square(float len){
length = len;
}
float getArea() override {
return length * length;
}
void sayHi() {cout << "hell0" << endl;}
};
class FunnySquare : public Square {
public:
FunnySquare(float len) : Square(len) {}
void tellJoke() {std::cout << "I gave you the wrong area haha" << endl;}
float getArea() override {
return 2.0;
}
};
【问题讨论】:
标签: c++ overriding virtual pure-virtual