读书笔记:Effective C++ 2.0 版,条款37(不要重新定义继承而来的非虚函数)、条款38(不重新定义继承而来的缺省参数值)

条款37: 决不要重新定义继承而来的非虚函数

非虚函数在编译期静态绑定,容易出错。

概念上也不合适。

任何条件下都要禁止重新定义继承而来的非虚函数。

条款38: 决不要重新定义继承而来的缺省参数值

继承一个有缺省参数值的虚函数。

虚函数是动态绑定而缺省参数值是静态绑定的。

c 复制代码
enum ShapeColor { RED, GREEN, BLUE };
class Shape {
public:
  virtual void draw(ShapeColor color = RED) const = 0;
};
class Rectangle: public Shape {
public:
  virtual void draw(ShapeColor color = GREEN) const;
};
class Circle: public Shape {
public:
  virtual void draw(ShapeColor color) const;
};
相关推荐
江塘4 分钟前
机器学习-KNN算法实战及模型评估可视化(C++/Python实现)
开发语言·c++·人工智能·python·算法·机器学习
KL41806 分钟前
【QT】窗口
c++·qt
艾莉丝努力练剑1 小时前
【C++:继承和多态】多态加餐:面试常考——多态的常见问题11问
开发语言·c++·人工智能·面试·继承·c++进阶
Skrrapper1 小时前
【C++】C++11出来之后,到目前为止官方都做了些什么更新?
开发语言·c++
西哥写代码1 小时前
基于dcmtk的dicom工具 第十一章 加载dicom文件多帧图数据
c++·dicom·dcmtk·vs2017·多帧图
sulikey1 小时前
Qt 入门简洁笔记:常用控件
c++·qt·控件·qwidget·qlabel·qpushbutton·qlineedit
一抹轻笑动人1 小时前
cpp language 语法
开发语言·c++
煤球王子1 小时前
学而时习之:C++语言基础了解
c++
承渊政道2 小时前
算法复杂度
c语言·数据结构·c++·算法·visual studio
千年奇葩2 小时前
Unity性能优化之:利用CUDA加速Unity实现大规模并行计算。从环境搭建到实战案例
c++·人工智能·unity·游戏引擎·cuda