C++类中成员变量和成员指针变量小结
2016-01-27 14:05
323 查看
指针的确有点难理解,不过它之所以存在并大范围使用,这样做是有一定道理的。
如果要使用同一接口,多态设计,那么就一定要使用基类指针。只有指针才能在实力化后动态的判断使用哪个方法。
2、代码复用。有一些程序要设计成一段代码能处理多个事。用指针可以提高复用和灵活性。
3、节省内存损耗。在函数调用等一些问题上,使用指针可以减少临时内存变量和复制
比如在函数传递的时候,可以只复制一个指针(4字节)了事,而用成员变量,就会变成了size(class ccc)了,内存就会 大大占用了;
当然指针也会有副作用,在构造类的时候,也会因为是指针,而造成内存的错误;所以析构函数要释放内存,还有基类的析构函数最好要virtual
4、动态数组的内存分配。因为不能确定数组个数,指针使用new来分配可以根据运行时分配。
成员变量一般用来表示类的属性
一、C++中的类和结构使用指针定义成员作用
1、多态的要求。如果要使用同一接口,多态设计,那么就一定要使用基类指针。只有指针才能在实力化后动态的判断使用哪个方法。
2、代码复用。有一些程序要设计成一段代码能处理多个事。用指针可以提高复用和灵活性。
3、节省内存损耗。在函数调用等一些问题上,使用指针可以减少临时内存变量和复制
比如在函数传递的时候,可以只复制一个指针(4字节)了事,而用成员变量,就会变成了size(class ccc)了,内存就会 大大占用了;
当然指针也会有副作用,在构造类的时候,也会因为是指针,而造成内存的错误;所以析构函数要释放内存,还有基类的析构函数最好要virtual
4、动态数组的内存分配。因为不能确定数组个数,指针使用new来分配可以根据运行时分配。
成员变量一般用来表示类的属性
为了提高效率,假如在你的程序当中,没有需要用到结构或者类来进行传参的话,那么就直接min b,像你说的这样用就好了,因为用指针的话多了一步间接寻址的过程,反而让程序运行时间更加长了(这个多了的时间,基本可以用ms为单位来计算) 但是有以结构或者对象来作为参数的函数时,应该用指针传递或者引用传递,假如是直接值传递的话,结构需要拷贝的时间,类则多了拷贝构造函数调用的时间,还要复制,最后可能还要调用析构函数,时间开销很大,一个函数调用10次的话,就10倍的增加,所以大部分都是直接用指针来替代,方便,简介,效率
相关文章推荐
- C++ 遍历文件夹以及子文件夹下所有文件
- C语言学习之程序运行是内存的5大分区
- VC++异常捕获??
- 冒泡排序的实现
- 【C++】 一维数组的初始化
- c++之后又学了一学期python,于是做的游戏比上学期进步不少
- C语言笔记
- C++ 多继承和虚继承的内存布局
- Google C++ style guide——命名约定
- C++虚函数和虚继承浅析
- C++【常见面试题】String类的实现,以及深拷贝、浅拷贝问题
- USACO:Factorials
- 0723-0802 C语言笔记(李明杰前8天)
- C++【String类】String头插单个字符,头删单个字符的函数实现
- C++调用C#dll类库中的方法(非显性COM)
- C语言中常见排序算法汇总
- C++【String类】String插入单个字符,插入字符串的函数实现
- c++中优化内存分配:new/delete操作符;allocator类对象的使用;operator new/operator delete函数及定位new表达式
- C++【String类】String删除单个字符,删除字符串的函数实现
- C++【String类】String查找单个字符,查找字符串的函数实现