C++学习笔记之类和对象IV
子对象:一个类的成员是某个类的对象,这个对象就为子对象,类的构造函数要包含对子对象的初始化,通常采用成员初始化表的方法。
#include <iostream.h>
class P
{
public:
P(int i,int j){m=i,n=j;}
void print(){cout<<m<<","<<n<<endl;}
private:
int m,n;
};
class Q
{
public:
Q(int i,int j,int k):p(i,j),l(k)//成员初始化表
{
}
void print();
private:
P p;//p为子对象
int l;
};
void Q::print()
{
p.print();
cout<<l<<endl;
}
void main()
{
Q q(6,7,8);
q.print();
}
堆对象:在程序运行过程中根据需要随时可以建立或删除的对象堆:内存中一些空闲的存储单元,可以被堆对象占有,删除堆对象获得释放
new运算符返回一个指针,如不能分配到所需的内存,它返回0,此时指针为空指针,也可创建对象数组
delete运算符用来删除new创建的对象或一般类型指针
A *ptr; ptr = new A(5,6); delete ptr; A *ptr; ptr = new A[5]; delete [][]ptr;注意:
用于由new返回的指针
也适用于空指针
对一个指针只能使用一次delete操作
对于数组对象,只能用一对括号符,并且考虑数组维数,忽略方括弧内任何数字
用new创建对象时,要调用构造函数,用delete删除对象时,要调用析构函数
#include <iostream>
void fun()
{
int *p;
if(p=new int)
{
*p=5;
cout<<*p<<endl;
delete p;
}
else
cout<<"heap error\n"<<endl;
}
void main()
{
fun();
int *pa;
pa = new int[5];
if (!pa)
{
cout<<"heap error\n"<<endl;
exit(1);
}
for(int i=0;i<5;i++)
{
pa[i] = i+1;
}
for(int i=0;i<5;i++)
cout<<pa[i]<<" ";
cout<<endl;
delete pa;
}
posted on 2010-08-07 13:18 CrazeCoder 阅读(247) 评论(0) 收藏 举报
浙公网安备 33010602011771号