string类的实现,包含构造函数,赋值运算符,拷贝构造函数,析构函数
string.cpp
#include<iostream>
using namespace std;
class string {
private:
int length;
char* my_str;
public:
string(const char *str) {
if (*str == '\0') {
length = 0;
my_str = new char[1];
}
else {
length = strlen(str);
my_str = new char[length + 1];
strcpy(my_str, str);
my_str[length] = '\0';
}
}
string(const string &str) {
length = str.length;
my_str = new char[length + 1];
strcpy(my_str, str.my_str);
}
string& operator=(const string& str) {
if (this == &str) {
return *this;
}
else {
delete[] my_str;
length = str.length;
my_str = new char[length + 1];
strcpy(my_str, str.my_str);
my_str[length] = '\0';
return *this;
}
}
~string() {
delete[] my_str;
}
};