#include
#include
#include
using namespace std;
class String {
public:
explicit String(const char *str = "<>"); //普通构造函数
String(const String &other); //拷贝构造函数
String &operator=(const String &other); //赋值函数
void Show() const;
~String(void); //析构函数
private:
char *m_data; // 用于保存字符串
};
String::String(const char *str) { // 普通构造函数
m_data = new char[strlen(str) + 1];
strcpy(m_data,str);
}
String::String(const String &other) { //拷贝构造函数
m_data = new char[strlen(other.m_data) + 1];
strcpy(m_data,other.m_data);
}
void String::Show() const {
cout << m_data << endl;
}
String::~String(void) { //析构函数
delete [] m_data;
}
String &String::operator=(const String &other){ //赋值函数
if(this != &other) {
delete [] m_data; // 释放原有的内存资源
m_data = new char[strlen(other.m_data) + 1];
strcpy(m_data,other.m_data);
}
return *this;
}
int main(int argc,char *argv[]) {
String str1("hello");
str1.Show();
String str2;
str2.Show();
String str3(str1);
str3.Show();
str2 = String("well");
str2.Show();
String str4("good");
str4.Show();
return 0;
}
类的声明中 char *str; 有用到吗