📄 proj9_06.cpp
字号:
#include <iostream.h>
#include <string.h>
class string
{
public:
string(char *s=""); //构造函数
string& operator=(string & ); //重载赋值运算符
string(string &);//复制构造函数的参数只能用传引用方式
~string(){delete[] str;}
void display(){cout<<str;}
private:
char *str;
};
//复制构造函数
string::string(string &s1)
{
int length=strlen(s1.str);
str=new char[length+1];
strcpy(str,s1.str);
}
//构造函数
string::string(char *s)
{
int length=strlen(s);
str=new char[length+1];
strcpy(str,s);
}
//重载赋值运算符
string& string::operator=(string &s)
{
if (this == &s) //为了实现对自身赋值
return (*this);
if (str != NULL) //当赋NULL值的时候
{
delete[] str;
str = NULL;
}
int length = strlen(s.str);
str = new char[length + 1];
strcpy(str , s.str);
return( *this );
}
void main()
{
string s1("Welcome to my world\n");
s1.display();
string s2 = s1; //调用拷贝构造函数
s2 = s1; //调用重载赋值运算符
cout<<"s2 = ";
s2.display();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -