C++之构造函数与析构函数
来源:互联网 发布:mac破解软件大全下载 编辑:程序博客网 时间:2024/06/01 08:00
最近在学习C++,每次看到继承这段的时候,总是一边感慨这门语言的难度,一边感慨这门语言的神奇之处。最近看到了构造函数这段,问了自己这样一个问题,构造函数可以是虚函数吗?不是很清楚,于是去查了一些资料。
首先我觉得应该明确的一个问题就是,虚函数的功能是C++中多态的一种实现方式。主要是继承类的某些功能和基类的某些功能会在实现方式上不同,因此需要重新定义,而我们在调用的时候又希望不要去区分调用的是基类的还是继承类的,于是产生了这样的一个机制。但是对于构造函数来说,却不能够定义成一个虚函数,下面我们从下面两个方面来说明之:
从存储空间的角度:虚函数对应一个虚函数表,而这个虚函数表是存储在实例对象的内存中的。若构造函数是虚函数,那么我们如果想调用构造函数,则必须先找到这个虚函数表,而此时实例还没有创建成功,因此就不能够找到构造函数。
从使用的角度来看,虚函数的主要作用就是在信息不全的情形下,使得重载的函数得到对应的调用,构造函数本身就是要初始化实例,使用虚函数也没有实际的意义,因此构造函数没有必要时虚函数。
而与构造函数相对应的析构函数则不同,可以是虚函数。甚至在很多的情形下,析构函数最好能够定义成虚函数,这样在析构的时候,我们总是能够调用到正确的析构函数。
0 0
- c++-构造函数与析构函数
- C++--构造函数与析构函数
- 【c++】构造函数与析构函数
- C++:构造函数与析构函数
- 从C看C++之(四)构造函数与析构函数
- 【C++】初始化与清除(构造函数与析构函数)
- 一步一步学习C++(类)之构造函数与析构函数
- [C++]构造函数与析构函数讲解
- 构造函数与析构函数(C++)
- C语言的构造函数与析构函数
- C++_构造函数与析构函数
- 初识C#——构造函数与析构函数
- 关于Object-c 中的构造函数与析构函数
- C++(构造函数与析构函数)
- C/C++面试题:构造函数与析构函数
- 3.4构造函数与析构函数【C++】
- 【学习C++】学习C++ -> 构造函数与析构函数
- C#OOP之六 构造函数和析构函数
- 嵌入式 G711A编码音频转码为AAC过程代码示例
- 使用nandwrite烧写yaffs2文件系统
- 1015. Reversible Primes (20) ——PAT (Advanced Level) Practise
- ios 底层数据结构
- GitHub问题之恢复本地被删除的文件
- C++之构造函数与析构函数
- 为什么基类中的析构函数要声明为虚析构函数?
- asp.net数据库缓存依赖
- POJ 3224 Go for Lab Cup!(水题)
- MySQL性能医生:OrzDBA
- NSCalendar日历使用详解
- Core Data Features(Apple官方文档译文)
- SpringMVC环境的搭建
- 《大话数据结构》读书笔记之二叉堆基本操作(最大堆)