C++为什么不要为虚函数和它的覆盖函数设定不同的默认参数

这篇文章主要讲解了“C++为什么不要为虚函数和它的覆盖函数设定不同的默认参数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++为什么不要为虚函数和它的覆盖函数设定不同的默认参数”吧!

创新互联公司-专业网站定制、快速模板网站建设、高性价比达坂城网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式达坂城网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖达坂城地区。费用合理售后完善,10多年实体公司更值得信赖。

C.140:不要为虚函数和它的覆盖函数设定不同的默认参数

Reason(原因)

这可能会引起混乱:覆盖函数不会继承默认参数。

Example, bad(反面示例)
class Base {public:    virtual int multiply(int value, int factor = 2) = 0;    virtual ~Base() = default;};
class Derived : public Base {public:    int multiply(int value, int factor = 10) override;};
Derived d;Base& b = d;
b.multiply(10);  // these two calls will call the same function butd.multiply(10);  // with different arguments and so different results

Enforcement(实施建议)

如果基类和派生的虚函数和覆盖函数的默认参数不同,进行提示。

感谢各位的阅读,以上就是“C++为什么不要为虚函数和它的覆盖函数设定不同的默认参数”的内容了,经过本文的学习后,相信大家对C++为什么不要为虚函数和它的覆盖函数设定不同的默认参数这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


本文名称:C++为什么不要为虚函数和它的覆盖函数设定不同的默认参数
文章路径:http://pwwzsj.com/article/igepoj.html