返回*这会给出Weffc ++警告

时间:2018-09-04 18:17:08

标签: c++ c++11 g++ weffc++

我有一些要用-Weffc ++ -Wall -Wextra编译的代码here

基本上我有以下代码段:

class base
{};

class test : public base
{
public:
    base& operator=(int)
    {
        return *this;
    }
};

,我得到警告:warning: 'operator=' should return a reference to '*this' [-Weffc++]。我不太确定该警告该怎么做。我已经读过,这是完全可以的(即返回一个与此相关的结果)。

有没有办法让我的编译器满意?

1 个答案:

答案 0 :(得分:6)

将代码更改为:

class test : public base
{
public:
     test& operator=(int)
     {
        return *this;
     }
};

每个人都会感到高兴,而不仅仅是您的编译器。

PS:如果您想进一步了解-Weffc ++产生的警告,则摘录自本书中的建议:

  

有效的C ++:55种改善程序和设计的特定方法,   Addison–Wesley,1992年,(ISBN 0-321-33487-6)。