9_6.cpp

来自「清华大学C++补充习题代码」· C++ 代码 · 共 51 行

CPP
51
字号
//9_6.cpp
#include <iostream>
#include <iostream>
using namespace std;
class T
{
	char *p1;
public:
	T(char *s1="");
	T(T & t);
	~T();
	T& operator=(T & t);
	void print()	{cout<<"p1="<<p1<<endl;}
};
T::T(char *s1)
{
	p1=new char[strlen(s1)+1];
	strcpy(p1,s1);
}
T::~T(){	delete []p1;}
T::T(T & t)
{
	p1=new char[strlen(t.p1)+1];
	strcpy(p1,t.p1);
}
T& T::operator=(T & t)
{
	delete []p1;
	p1=new char[strlen(t.p1)+1];
	strcpy(p1,t.p1);
	return *this;
}
int main()
{
	T t1("Lucky boy"),t2(t1),t3;
	t1.print();
	t2.print();
	t3=t2=T("Welcome");
	t2.print();
	t3.print();
	return 0;
}

/*
运行结果:
p1=Lucky boy
p1=Lucky boy
p1=Welcome
p1=Welcome
*/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?