C++ 代码意义解释

来源:百度知道 编辑:UC知道 时间:2024/06/03 05:14:25
#include<iostream.h>
#include<string.h>
class base
{
char *p;
public:
base(int sz,char *bptr)
{ p=new char[sz];
strcpy(p,bptr);
cout<<"constructor base"<<endl;
}
virtual~base()
{
delete[]p;cout<<"destructor base\n";}
};
class derive:public base
{
char *pp;
public:
derive(int sz1,int sz2,char*bp,char*dptr):base(sz1,bp)
{ pp=new char[sz2];
strcpy(pp,dptr);
cout<<"constructor derive"<<endl;
}
~derive()
{ delete[]pp;cout<<"destructor derive\n";}
};
void main()
{
base *px=new derive(5,7,"base","derive");
delete px;
}

运行结果:
constructor base
constructor derive
destructor derive
destructor base

上面代码的运行的意思是什么啊?越详细越好啊~

很简单的东东。。应该是什么书上的吧。。这个程序主要的作用是使你明白派生类的创建和销毁顺序---建立先调用基类构造函数。然后才调用派生类的。。销毁时相反。。。
#include<iostream.h> //基本输入输出头文件
#include<string.h> //字符串头文件,因下面用到strcpy()所以要包含
class base // 类base
{
char *p;
public:
base(int sz,char *bptr) //类的构造函数
{ p=new char[sz]; //分配sz大小的字符空间,并用p指针指向它
strcpy(p,bptr); //把bptr指向的字符串的值赋给p指向的内存空间
cout<<"constructor base"<<endl;
}
virtual~base() //类的析构函数
{
delete[]p;cout<<"destructor base\n";} //释放内存空间
};
class derive:public base //类derive公有派生自类base
{
char *pp;
public:
derive(int sz1,int sz2,char*bp,char*dptr):base(sz1,bp)
//构造函数
{ pp=new char[sz2]; //下面类似上面base类中
strcpy(pp,dptr);
cout<<"constructor derive"<<endl;
}
~derive()
{ delete[]pp;cout<<"destructor derive\n";}
};
void main()