完成下面类
//拷贝构造 //析构函数 //判空函数 //size函数 //c_str函数 //at函数 char &at(int pos);
#include <iostream>
#include <cstring>
using namespace std;
class myString
{
private:char *str; //记录c风格的字符串int size; //记录字符串的实际长度
public://无参构造myString():size(10){str = new char[size]; //构造出一个长度为10的字符串strcpy(str,"");}//有参构造myString(const char *s){size = strlen(s);str = new char[size+1];strcpy(str,s);}//拷贝构造myString(const myString &other):size(other.size){str = new char[size + 1];strcpy(str, other.str);cout<<"myString 的拷贝构造函数"<<endl;}//析构函数~myString(){cout<<"准备释放空间: "<<str<<endl;delete str;}//判空函数bool myempty();//size函数int mysize();//c_str函数const char* mycstr();//at函数char &at(int pos);
};
bool myString::myempty()
{return size!=0;
}
int myString::mysize()
{return size;
}
const char* myString::mycstr()
{return str;
}
char& myString::at(int pos)
{string s=str;if(pos<0||pos>=size){cout<<"越界访问"<<endl;return str[0];}return str[pos];
}int main()
{myString s1;cout<<"s1 empty(0 or 1): "<<s1.myempty()<<endl;cout<<"s1:"<<s1.mycstr()<<endl;cout<<"s1 size:"<<s1.mysize()<<endl;cout<<endl;myString s2("Hello");cout<<"s2 empty(0 or 1): "<<s2.myempty()<<endl;cout<<"s2: "<<s2.mycstr()<<" size: "<<s2.mysize()<<endl;cout<<"s2 at 1: "<<s2.at(1)<<endl;cout<<endl;myString s3(s2);cout<<"s3: "<<s3.mycstr()<<" size: "<<s3.mysize()<<endl;cout<<endl;myString s4("");cout<<"s4 empty(0 or 1): "<<s4.myempty()<<endl;cout<<"s4: "<<s4.mycstr()<<" size: "<<s4.mysize()<<endl;return 0;
}