读书笔记: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;
};
相关推荐
XiaoyaoCarter9 分钟前
每日两道leetcode
c++·算法·leetcode·职场和发展·贪心算法
LIU_Skill9 分钟前
SystemV-消息队列与责任链模式
linux·数据结构·c++·责任链模式
矛取矛求15 分钟前
STL C++详解——priority_queue的使用和模拟实现 堆的使用
开发语言·c++
Non importa44 分钟前
【C++】新手入门指南(下)
java·开发语言·c++·算法·学习方法
pp-周子晗(努力赶上课程进度版)2 小时前
【C++】特殊类的设计、单例模式以及Cpp类型转换
开发语言·c++
海码0072 小时前
【Hot100】 73. 矩阵置零
c++·线性代数·算法·矩阵·hot100
菜鸟学编程o2 小时前
C++:继承
开发语言·c++
努力努力再努力wz2 小时前
【c++深入系列】:万字string详解(附有sso优化版本的string模拟实现源码)
java·运维·c语言·开发语言·c++
hy____1233 小时前
类与对象(上)
开发语言·c++·算法
庐阳寒月3 小时前
动态规划算法:完全背包类问题
数据结构·c++·算法·动态规划