一、静态类型、动态类型

  • 静态类型:在被声明时所采用的的类型

  • 动态类型:目前所知对象的类型

演示案例

  • 下面是一个继承体系

class Shape {public:enum ShapeColor { Red, Green, Blue };virtual void draw(ShapeColor color = Red)const = 0;};class Rectangle :public Shape {public:virtual void draw(ShapeColor color = Green)const = 0;};class Circle :public Shape {public:virtual void draw(ShapeColor color)const = 0;};

  • 现在我们定义下面的代码,它们都被声明为pinter-to-Shpae类型,因此它们不论它们指向什么,静态类型都是Shape*:

C++:47---绝不重新定义继承而来的缺省参数值相关推荐

  1. 绝不重新定义继承而来的缺省值参数

    绝不重新定义继承而来的缺省值参数 文章目录 绝不重新定义继承而来的缺省值参数 一.问题引入 二.结论 一.问题引入 在C++中,只能继承两种函数:虚(virtual)函数和非虚(non-virtual ...

  2. Effective C++:条款37:绝不又一次定义继承而来的缺省參数值

    因为又一次定义继承而来的non-virtual函数是不对的(见上一个条款),所以这个条款就将问题局限于:绝不又一次定义继承一个带有缺省參数值的virtual函数. (一) virtual函数是动态绑定 ...

  3. C++:46---绝不重新定义继承而来的non-virtual函数

    一.看一个隐藏non-virtual函数的例子 假设class D以public的方式继承于class B,代码如下: class B {public:void mf();};class D :pub ...

  4. Effective C++ --6 继承与面向对象设计

    上一篇Effective C++ --5 实现 32.确定你的public继承塑模出is-a关系 (1)public 继承意味着is-a.适用于base class身上的每一件事一定也适用于deriv ...

  5. 【effective c++】继承与面向对象设计

    1.确定你的public继承塑造出is-a关系 public继承意味着is-a.适用于base classes身上的每一件事情一定也适用于derived classes身上,因为每一个derived ...

  6. Effective C++: 06继承与面向对象设计

    32:确定你的public继承塑模出is-a关系 以C++进行面向对象编程,最重要的一个规则是:public继承表示的是"is-a"(是一种)的关系. 如果令class D以pub ...

  7. C++进阶_Effective_C++第三版(六) 继承与面向对象设计 Inheritance and Object-Oriented Design

    继承与面向对象设计 Inheritance and Object-Oriented Design 面向对象编程已经风靡编程界,关于继承.派生.virtual函数等等需要深入了解. 32.确定你的pub ...

  8. (6)继承与面向对象设计- Effective C++改善程序与设计的55个具体做法(Effective C++: 55 Specific Ways to Improve Your Programs)

    文章目录 32. 确定你的public继承塑模出is-a关系(Make sure public inheritance models "is-a") 33. 避免遮挡继承而来的名称 ...

  9. 《Effective C++ 3th》——继承与面向对象设计

    文章目录 Is A 确定你的public继承塑模出is-a关系 避免遮掩继承而来的名称 区分接口继承和实现继承 考虑virtual函数以外的其他选择 绝不重新定义继承而来的non-virtual函数 ...

最新文章

  1. 【转帖】SQLServer登录连接失败(error:40-无法打开到SQLServer的连接)的解决方案...
  2. 11-jQuery的事件绑定和解绑
  3. 《java多线程编程实战指南 核心篇》读书笔记一
  4. System Control Processor Firmware简介
  5. vue导入excel进度条_Vue 前端开发——导入Excel/Csv
  6. 十行代码实现网页标题滚动效果!
  7. 通过案例对SparkStreaming透彻理解-3
  8. vue-cli4.x 中 配置允许跨域请求
  9. js 获取中括号里面字符串_一日一技:一次性把字符串用多个分隔符分割
  10. HBase中数据的多版本特性潜在的意外
  11. c语言如何删除数组中的某一个元素_数据结构之线性表高效删除重复元素
  12. C++11新特性——auto和decltype
  13. 渗透测试专业术语——攻击篇
  14. Adobe全家桶2022版官方正版来啦~~
  15. 视界云联合创始人姜飞 荣获品途2017年NBI商业影响力新锐人物奖
  16. 递归实现部门树形数据结构
  17. p坚持csma协议 仿真‘_签了“三方协议”,还算应届毕业生吗!?
  18. 启动tomcat报错:Destroying ProtocolHandler [ajp-nio-8009]
  19. 解压文件到服务器是什么意思,linux中zip文件解压命令是什么
  20. 微信H5页面禁止分享朋友和复制链接

热门文章

  1. Linux 信号signal处理函数
  2. 用mingw链接msvc生成的库时,无定义chkstk问题的解决
  3. ubuntu下IP、DNS配置
  4. php二维码存放json数据_PHP生成及获取JSON文件的方法
  5. php获取跳转前的地址,PHP获取短链接跳转后的真实地址和响应头信息的方法
  6. 【转】ABP源码分析四:Configuration
  7. [转载]Bluetooth协议栈学习之SDP
  8. mybatis plus 事务管理器_SpringBoot第七篇:springboot开启声明式事务
  9. PWN-PRACTICE-CTFSHOW-5
  10. 【BZOJ 3831】【Poi2014】Little Bird(单调队列优化dp)