读书笔记: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;
};
相关推荐
Thymme1 小时前
C++获取时间和格式化时间
c++
真的想上岸啊1 小时前
学习C++、QT---25(QT中实现QCombobox库的介绍和用QCombobox设置编码和使用编码的讲解)
c++·qt·学习
刃神太酷啦2 小时前
C++ 多态详解:从概念到实现原理----《Hello C++ Wrold!》(14)--(C/C++)
java·c语言·c++·qt·算法·leetcode·面试
山河木马2 小时前
前端学C++可太简单了:引用
前端·javascript·c++
wjm0410062 小时前
C++后端面试八股文
java·c++·面试
越城3 小时前
C++类与对象(上)
开发语言·c++
泽02023 小时前
C++之哈希表的基本介绍以及其自我实现(开放定址法版本)
c++
序属秋秋秋3 小时前
《C++初阶之STL》【泛型编程 + STL简介】
开发语言·c++·笔记·学习
点云SLAM5 小时前
二叉树算法详解和C++代码示例
数据结构·c++·算法·红黑树·二叉树算法
m0_5350646012 小时前
C++模版编程:类模版与继承
java·jvm·c++