动态内存(2012.07.05)

来源:互联网 发布:php工厂模式单例模式 编辑:程序博客网 时间:2024/05/17 15:39

1.内存泄露

上篇提到的内存泄露的含义,因为没有及时释放内存,随着指针的消失引起的计算机找不到(当然也不能利用)这块儿内存空间的情况。

此处的含义原理上相同:

{int *p;p=new int;p=new int;delete p;cout<<p<<endl;}
将p指向了两块儿内存空间,会致使第一块儿内存空间不能用。

2.在堆中创建对象(???与创建堆中空间的不同之处)

将对象保存在堆中,通过指针来访问它。

明了变量与对象之间的差别:

类、对象、成员之间的关系。(范磊老师对这个问题的解释特别到位,一下内容,全部来自范磊老师《从新手到高手C++全方位学习》一书)

“人类就是一个类,他包含很多对象,如张三、李四等人都可以算作人类的对象(即对象是实例化的类)。这些对象都拥有人类共同的功能和数据,如身高、体重、年龄、性别等,另外他们还可以说话、吃饭、喝水、睡觉、思考问题等;我们可以将这些特点看作是人类共有的方法或函数,可将具体化的身高体重这些具体数据看作是人类这一类的成员变量。类是由若干个变量和相关函数组成的,而对象可拥有这些变量和函数。……硬盘是个类,希捷硬盘是该硬盘类的一个对象,型号、容量、转速是该类的数据成员;读取数据和写入数据是该类的方法成员,也叫成员函数;数据成员和成员函数统称为该类的成员。对象拥有并且可以封装这些 成员。”

class A{public:A(){cout<<"构造函数执行中……"<<endl;i=900;}protected:private:int i;};int main(){A *p=new A;return 0;}


原创粉丝点击