gpt4 book ai didi

c++ - 被覆盖的纯虚函数是虚拟的吗?

转载 作者:行者123 更新时间:2023-12-04 14:51:21 24 4
gpt4 key购买 nike

您将在下面看到 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;
}
};

最佳答案

是的,Square::getAreaFunnySquare::getArea 都是virtual也是。

(强调我的)

Then this function in the class Derived is also virtual (whether or not the keyword virtual is used in its declaration) and overrides Base::vf (whether or not the word override is used in its declaration).

关于c++ - 被覆盖的纯虚函数是虚拟的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69039022/

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