C++编程入门(二) 互动版

子对象

对象跟变量一样,所以类A的对象,可以是类B的数据成员,这是就成为类B的子对象。当类B中出现了子对象时,该类的构造函数必须要包含子对象的初始化。

堆对象

在程序运行过程中,根据需要随时建立或删除的对象,叫做堆对象。前面说过根据对象生存期和作用域,可以将对象分为三类:全局对象,局部对象,静态对象。全局和局部对象是根据生存期分的,但他们的生存期是固定的。有时候需要程序员控制什么时候创建对象,什么时候释放对象。这时就要用到堆对象,分别对应new和delete运算符。很熟悉这两个运算符吧,我们也学过的。

#include <iostream>
using namespace std;
class Point
{
    public:
        Point(int x, int y){a=x;b=y;}
        void incr(int x,int y){a+=x;b+=y;}
        void Print(){cout<<"a= "<<a<<" b= "<<b<<endl;}
    private:
        int a,b;
};

void main()
{
    L *l1 = new L(1,2);
    l1->Print();
    delete l1;
}

main函数中new了一个无名对象,并将其地址赋值给l1。最后要记得delete掉new的对象,以免内存泄漏。

在右侧代码框中编写程序:练习new和delete:同样是类A,只有一个数据成员a。主函数中,用户输入对象数组长度n,并输入相应个数的a值,输入结束后,输出这些a值。