首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

小弟我是个菜鸟,问一个关于动态内存分配的有关问题

2012-05-09 
我是个初学者,问一个关于动态内存分配的问题#includeiostream#includestringusing namespace stdclas

我是个初学者,问一个关于动态内存分配的问题
#include<iostream>
#include<string>
using namespace std;
class CClass
{
private:
char *name;
int num;
public:
CClass(char *Name="",int Num=0);
CClass(CClass &n);
~CClass()
{
cout<<"调用析构函数"<<endl;
delete name;
}

void Print();
};
CClass::CClass(char *Name,int Num)
{
name=Name;
num=Num;
}
CClass::CClass(CClass &n)
{
name=new char[strlen(n.name)+1];
if(name!=0)
{
strcpy(name,n.name);
}
num=n.num;
cout<<"创建班级拷贝"<<endl;
}
void CClass::Print()
{
cout<<"This name is:"<<name<<endl
<<"Num="<<num<<endl;
}

int main()
{
CClass c1("jiang",78);
CClass c2(c1);
c1.Print();
c2.Print();
return 0;
}
这个程序编译、链接都没问题,但运行时会弹出一个debug对话窗,不知道那个地方错了,还请各位前辈帮帮忙,请解释详细点,多谢了!!!

[解决办法]

C/C++ code
CClass::CClass(char *Name,int Num){    name=new char[strlen(Name)+1];    strcpy(name,Name);    num=Num;} 

热点排行