c++构造函数浅析
2016-07-25 20:33
225 查看
构造函数 :
1.初始化对象,对象就是一个物化的东西,其一创造出来就是一个完整的物体,在面向对象这个体系中对象在使用之前就应该是初始化好的,不应让别人去初始化。
ps:构造函数不去分配内存,其一new一个对象时new语句本身就是分配内存的,而不是构造函数分配的。其二静态全局对象在main函数没有运行之前就已经存在了。更别说去执行构造函数。而是由编译器事先就分配好的,直接load内存使用。
2.为对象分配资源
文件等资源的分配以及对象的使用分配堆内存
3.其它程序员认为要做的事情。
对象的创建到对象的使用这个时间点要干的事情,如,载入对象要用的库,在析构函数中卸载库
为什么要设计构造函数、析构函数
1.更好的体现“物化”思想(自动性)
2.更好的封装性(避免从外部初始化)
3.更有效地使类架构设计与程序架构设计分开
通过继承派生的关系写一个类库。程序架构设计通过类创建一个个的对象(类是给编译器看你的不参加实际的运算),对象之间组织起来的架构就是程序的架构。
4.导致更清晰的面向接口编程、更有效的复用
一个好的程序是接口到接口的去操作,接口去操作另外类的数据是不好的类设计造成的。
1.初始化对象,对象就是一个物化的东西,其一创造出来就是一个完整的物体,在面向对象这个体系中对象在使用之前就应该是初始化好的,不应让别人去初始化。
ps:构造函数不去分配内存,其一new一个对象时new语句本身就是分配内存的,而不是构造函数分配的。其二静态全局对象在main函数没有运行之前就已经存在了。更别说去执行构造函数。而是由编译器事先就分配好的,直接load内存使用。
2.为对象分配资源
文件等资源的分配以及对象的使用分配堆内存
3.其它程序员认为要做的事情。
对象的创建到对象的使用这个时间点要干的事情,如,载入对象要用的库,在析构函数中卸载库
为什么要设计构造函数、析构函数
1.更好的体现“物化”思想(自动性)
2.更好的封装性(避免从外部初始化)
3.更有效地使类架构设计与程序架构设计分开
通过继承派生的关系写一个类库。程序架构设计通过类创建一个个的对象(类是给编译器看你的不参加实际的运算),对象之间组织起来的架构就是程序的架构。
4.导致更清晰的面向接口编程、更有效的复用
一个好的程序是接口到接口的去操作,接口去操作另外类的数据是不好的类设计造成的。
相关文章推荐
- GeekBand C++ 面向对象高级编程(上) 第一周笔记
- C++文件读取操作详解
- C++中隐式转换和显示转换
- Leetcode 31. Next Permutation (Medium) (cpp)
- c语言基础
- C++11新特性:可变参数模板
- C语言开始
- C语言 用free函数释放在堆上申请的空间,这个函数到底做了什么
- c++设计模式之组合模式
- 使用JNI进行Java与C/C++语言混合编程(1)--在Java中调用C/C++本地库
- C语言学习超前期
- C++实现ping功能
- c++ 初学者
- C语言 关键字!!面试常碰到!
- [置顶] C语言做的接鸡蛋小游戏(附源码注释)【原创】
- 指针数组
- C++_lesson_1,命令框编译源文件方法
- c/c++第一天
- c++较好程序:读取csv文件
- C语言的艺术初习