java.util.List接口 /** * @author lxrm * @date 20170307 * @description 本程序讲述java.util.List接口的用法 * java.util.List * 概述: * 1)List接口是Collection接口的子接口,所以List ...
分类:
编程语言 时间:
2017-03-08 13:56:42
阅读次数:
191
使用new初始化对象中的指针成员时遇到的问题 在构造函数中使用new初始化指针成员,那么析构函数中就必须使delete,并且new对应delete, new[]则对应于delete[]。 在有多个构造函数的情况下,必须以相同的方式使用new,要不用new,要不用new[],因为只存在一个析构函数,所 ...
分类:
其他好文 时间:
2017-02-19 00:13:03
阅读次数:
137
经过前两篇随笔( 上 中 )的分析我们已经解决了具有指针成员的同类对象“ 干涉 ”问题。可惜,前面给出的解决方案代码还是不完整。还有什么问题呢?观察发现,构造函数里面有new的关键字出现,也就是说开辟了新的内存空间,我们也知道new必须也只能对应一个delete,而不应该让系统自己处理( 还不熟练... ...
分类:
其他好文 时间:
2017-01-27 00:09:05
阅读次数:
247
什么时候需要定义自己的拷贝构造函数: 当类中包含有,动态分配成员 或者 指针 的时候。 如果使用默认构造函数,则新构造出来的 新类 和 旧类 里面的指针成员 指向同一个空间, 而当其中一个类 清空掉那个空间 。另一个类的指针就会变成野指针(因为空间已经被清空) , 也就是说默认构造函数是复制值(地址 ...
分类:
其他好文 时间:
2016-12-30 01:47:33
阅读次数:
207
使用对象来管理资源,可以避免因个人疏忽带来的一些低级错误,但是不是每件事都是称心如意的。 一些函数依然使用原始的资源对象,那么我们就需要为这些函数提供一个接口,让他们可以获取到原始对象。 继续拿13节的智能指针说事,先上代码: //SFAutoPtr.h #pragma once template ... ...
分类:
其他好文 时间:
2016-12-24 02:03:30
阅读次数:
126
先考虑一种情况,对一个已知对象进行拷贝,编译系统会自动调用一种构造函数——拷贝构造函数,如果用户未定义拷贝构造函数,则会调用默认拷贝构造函数。 执行结果:调用一次构造函数,调用两次析构函数,两个对象的指针成员所指内存相同,这会导致什么问题呢? name指针被分配一次内存,但是程序结束时该内存却被释放 ...
分类:
其他好文 时间:
2016-11-27 23:19:18
阅读次数:
207
关于this指针 成员函数通过一个名为this的额外的隐式参数来访问调用它的对象。当我们调用一个成员函数时,用请求该函数的对象初始化this。 因为this的目的总是指向“这个”对象,所以this是一个常量指针,我们不允许改变this中保存的地址。 例如this的类型是Sale_data* cons ...
分类:
其他好文 时间:
2016-08-21 16:30:06
阅读次数:
178
在包含指针的类中需要注意复制控制,复制指针时只复制指针中的地址,不会复制指针指向的对象。 大多数c++类采用三种方法管理指针成员: 1)指针成员采用常规指针型行为。 2)采用智能指针 3)采取值型行为 常规指针缺陷:可能会出现悬垂指针。当一个指针复制到另一个指针,两个指针指向同一个对象,当一个指针删 ...
分类:
其他好文 时间:
2016-08-21 06:23:48
阅读次数:
143
赋值运算符两边的类型可以不匹配,需要重载赋值运算符‘=’。赋值运算符只能重载为成员函数。 重载赋值运算符的意义 浅复制和深复制 S1=S2; 浅复制/浅拷贝 执行逐个字节的复制工作 深复制/深拷贝 将一个对象中指针变量指向的内容复制到另一个对象中指针成员对象指向的地方。 对operator=返回值类 ...
分类:
其他好文 时间:
2016-07-09 10:34:49
阅读次数:
133