#include<iostream>
#include<string.h>
using namespace std;
class A
{
char* c_str;//用于保存字符串
public:
//无参构造
A(void)
{
c_str = new char[1];
c_str[0]='\0';
}
//有参构造
A(const char* str=NULL)
{
c_str = new char[strlen(str)+1];
strcpy(c_str,str);
}
//拷贝构造
A(const A& other)
{
c_str=new char[strlen(other.c_str)+1];
strcpy(c_str,other.c_str);
}
//析构
~A(void)
{
delete[]c_str;
}
//赋值构造
A& operator = (const A &other)
{
if(this !=&other)
{
delete[] c_str;
c_str=new char[strlen(other.c_str)+1];
strcpy(c_str,other.c_str);
}
return *this;
}
friend ostream & operator<<(ostream &, A &);
};
//用于重载操作符<< 直接输出字符串
ostream & operator<<(ostream &os, A & str)
{
os<<str.c_str;
return os;
}
int main()
{
A a="hello";
cout<<a.c<<endl;
}
String类的四个默认成员函数————C++的有参、拷贝、赋值、析构实现String
最新推荐文章于 2021-08-18 16:37:36 发布