拷贝构造函数的问题

来源:百度知道 编辑:UC知道 时间:2024/05/18 06:19:20
这是一个C++的问题,求高手解答。

源程序如下:
//NAME 类的界面
#include<iostream.h>
#include<string.h>
class NAME
{
private:
char *string;
public:
NAME();
~NAME();
void set_name(char *s);
void show();
};
//NAME 类的实现
#include"NAME.H"
NAME::NAME()
{
cout<<"Constructing."<<endl;
string=NULL;
return;
}
NAME::~NAME()
{
cout<<"Destructing."<<endl;
if(string!=NULL)delete string;
return;
}
void NAME::set_name(char *s)
{
string=new char[strlen(s)+1];
strcpy(string,s);
return;
}
void NAME::show()
{
cout<<string<<endl;
return;
}

// 演示NAME类的用法
#include"NAME.H"
NAME get_name()
{
NAME temp_obj;
char temp_str[250];
cout<<"Input your name:";
cin>&g

拷贝构造函数就是:类名(类对象),大概意思就是利用该类对象对自身的对象进行赋值
析构函数:释放指针,通常可以不写,有默认的析构函数
NAME::~NAME()
{
cout<<"Destructing."<<endl;
if(string!=NULL)delete string;
return;
}
重载赋值运算符用 类名 operator=()
{函数体:
return *this;
}