读书笔记: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;
};
相关推荐
道尔柯南3 小时前
C++ 面向对象编程入门:类和对象(上)
开发语言·c++·算法
aqiu1111115 小时前
【C++算法打怪专栏】C++ `unordered_set` 常用初始化与插入方法总结
开发语言·c++·算法
Terra.K5 小时前
高精度阶乘求和模板深度解析
开发语言·c++·算法
智码看视界5 小时前
C++智能指针全景剖析及面试20问
开发语言·c++·深度学习·面试·内存管理·智能指针
Peregrine96 小时前
C++ - > 类和对象
java·c++·算法
‎ദ്ദിᵔ.˛.ᵔ₎8 小时前
c++11:fuction包装器
开发语言·c++
霍霍的袁8 小时前
【C++】哈希表实现指南:从原理到开放定址法、链地址法的实现
c++·学习·哈希算法·散列表·visual studio
WL学习笔记9 小时前
类和对象(下)
c++·类和对象
傲世仙尊10 小时前
拷贝构造-传值传参的连锁反应与隐式函数的三个局限
c++
垆边人似月.10 小时前
华为机试题 :最大数
c++·算法·华为