我有一些要用-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++]
。我不太确定该警告该怎么做。我已经读过,这是完全可以的(即返回一个与此相关的结果)。
有没有办法让我的编译器满意?
答案 0 :(得分:6)
将代码更改为:
class test : public base
{
public:
test& operator=(int)
{
return *this;
}
};
每个人都会感到高兴,而不仅仅是您的编译器。
PS:如果您想进一步了解-Weffc ++产生的警告,则摘录自本书中的建议:
有效的C ++:55种改善程序和设计的特定方法, Addison–Wesley,1992年,(ISBN 0-321-33487-6)。