4

我设置了一个编译器/Za选项来禁用语言扩展,以便编译器使用严格标准的 ISO C++。这是我收到以下警告的示例接口类

警告 C4180:应用于函数类型的限定符没有意义;忽略

这是关于函数返回类型中的 const 限定符,如果我删除 const,警告会消失,但我不想这样做,我想重新启用 lanqage 扩展。

我的问题是:这个警告合理吗?如果不是,那么我将使用 pragma 禁用警告,但在此之前我想确定这个警告是“误报”

因为下面的类是正确的 ANSI ISO C++ 不是吗?所以应该禁用警告?

    class IBet
    {
    public:
        IBet() { };
        virtual ~IBet() = 0 { };
        virtual const float parentChips() const = 0; // Warning C4180
        virtual const short parentChilds() const = 0; // Warning C4180
            // ...
    };
4

1 回答 1

7

这两个函数的返回值声明为const. 由于它是按值传递的,因此没有任何意义。您可以删除它,const因为它完全没有任何用途。

于 2012-04-28T13:21:39.343 回答