面向对象——意图与逻辑(三)
2016-03-14 23:23
211 查看
面向对象——意图与逻辑
面向对象——意图与逻辑 (二)
面向对象——意图与逻辑(三)
面向对象——意图与逻辑(四)
当 const 修饰一个函数,称为const 型函数,是告诉编译器,不允许该函数修改成员变量的值。也即const 型函数只能是类的成员函数。
也即,首先一点,基类的析构函数默认为 non-virtual 的;
那为什么显式地将其声明为 virtual 呢,在做基类的情况下,所谓基类,自然有派生类,派生类一般都会有自己的私有成员变量,基类的析构函数仅仅析构了基类自身的成员变量。
归根结底,还是多态,virtual 就是多态的实现机制。
将基类的构造声明为
将基类的构造声明为protected的含义:
不允许在外部实例化该类,只允许其派生类调用
面向对象——意图与逻辑 (二)
面向对象——意图与逻辑(三)
面向对象——意图与逻辑(四)
const 型函数
C++ 支持 const 型变量,也支持 const 型函数,但 const 型函数只能为类的成员函数,不可以是全局函数。当 const 修饰一个函数,称为const 型函数,是告诉编译器,不允许该函数修改成员变量的值。也即const 型函数只能是类的成员函数。
为什么要显式地将基类的析构函数声明为 virtual
virtual 出现的地方一定是为了使用多态机制;也即,首先一点,基类的析构函数默认为 non-virtual 的;
那为什么显式地将其声明为 virtual 呢,在做基类的情况下,所谓基类,自然有派生类,派生类一般都会有自己的私有成员变量,基类的析构函数仅仅析构了基类自身的成员变量。
归根结底,还是多态,virtual 就是多态的实现机制。
将基类的构造声明为protected
:
将基类的构造声明为protected的含义:不允许在外部实例化该类,只允许其派生类调用
相关文章推荐
- 用的着的AndroidStudio常用快捷键
- MyEclipse 中设置分割线,让代码更加规范。
- 获取信息的有关Windows API(最有意思是OpenProcess和GetProcessMemoryInfo)
- 知识点2:时区
- .jshintrc配置文件中的一些常用配置
- leetcode 328. Odd Even Linked List
- Invalidate/InvalidateRect/UpdateWindow/RedrawWindow区别与联系
- 如何配置Java环境变量
- zoj 1084channel allocation
- 用EditText和DatePicker制作的日期选择器
- 编程学习第七天,定义函数
- java集群介绍
- defer和async的区别
- Kefa and Park
- #345 Div2 B. Beautiful Paintings
- 73条日常Linux shell命令汇总
- CentOS下 将tomcat 添加到服务
- 不安全函数(转)
- Android——初学
- Retrofit2.0源码分析