读书笔记: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;
};
相关推荐
Risehuxyc13 小时前
C++(VS2026)使用Ncap库的配置
c++
4ever.ov013 小时前
精学C++第一站 从命名空间到引用:C++入门核心语法全梳理(13000字长文)
开发语言·c++·clion
听风若依14 小时前
C++模板初阶
c++·算法
纪念 22914 小时前
C++ 算法(模拟)
开发语言·c++·算法
zwc321043205514 小时前
Day 2:图像内存、数据类型与stride
c++·人工智能·opencv·算法·计算机视觉
道尔柯南15 小时前
C++ 内存管理详解:从 malloc/free 到 new/delete
c++·面试
東隅已逝,桑榆非晚15 小时前
AVL数实现
c++·笔记·学习·算法
思想觉悟15 小时前
SEAndroid实战
android·linux·c++
.YM.Z16 小时前
优选算法——【双指针算法2】C++实现
开发语言·c++·算法
思想觉悟16 小时前
Aosp开发磨刀石之ADB速查
android·c++