gpt4 book ai didi

c++ - 当派生类中的函数无法覆盖基类中的虚函数时发出警告

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:49:10 26 4
gpt4 key购买 nike

<分区>

考虑以下小程序:

#include <iostream>

class Base {
public:
virtual void MyFunction() const {
std::cout << "This is Base" << std::endl;
}
};

class Derived : public Base {
public:
virtual void MyFuntcion() {
std::cout << "This is Derived" << std::endl;
}
};

int main() {
Base *p = new Derived();
p->MyFunction();
return 0;
}

它可以用 g++ -Wall -Wextra 干净地编译,编译器一点也看不到,但是当你运行它时,它会打印“This is Base”,因为Derived 中函数名的拼写错误。

现在在 java 或 C# 中,如果您在函数上放置一个 @override 标记,您将收到编译器关于打字错误的警告。有什么办法可以用 gcc 做类似的事情吗?也许是一个神奇的 __attribute__ 或类似的东西?

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