gpt4 book ai didi

c++ - 如何确定函数是否在编译时被覆盖?

转载 作者:行者123 更新时间:2023-11-30 00:37:29 24 4
gpt4 key购买 nike

也许是个愚蠢的问题。

假设我有以下内容:

class A{
int x;
int y;
virtual int get_thing(){return x;}
};

class B : public A {
int get_think(){return y;}
};

在上面的例子中,B::get_thing 返回 x 因为覆盖代码有错字。

我如何确保 在编译时 类 B 中的 get_thing 函数已被覆盖,以便它返回 y?

最佳答案

假设 A::get_thing 是虚拟的,并且假设 class B 派生自 class A,并且您有 C++11 支持, 您可以使用 override special identifier :

class B : public A{
int get_think() override {return y;}
};

这会产生编译器错误。请注意,这是基于方法的签名,即它的名称、cv 限定符和参数类型。返回类型或函数体不包含在内。

关于c++ - 如何确定函数是否在编译时被覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13253590/

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