#include <iostream>
#include <assert.h>
using namespace std;
class MyString
{
public:
MyString() {
data = new char[1];
data[0] = '\0';
length = 0;
}
MyString(const MyString& ms) {
data = new char[ms.length+1];
strcpy(data, ms.data);
length = ms.length;
data[length] = '\0';
}
MyString(char* input) {
length = strlen(input);
data = new char[length+1];
strcpy(data, input);
data[length] = '\0';
}
MyString& operator=(const MyString& ms) {
delete[] data;
length = ms.length;
data = new char[length+1];
strcpy(data, ms.data);
return *this;
}
const char& operator[](int n) const {
assert(n < length);
return data[n];
}
friend ostream& operator<<(ostream& out, const MyString& ms) {
out << ms.data << endl;
return out;
}
~MyString() {
delete[] data;
}
public :
char* data;
size_t length;
};
int main()
{
MyString ms1("hello world");
cout << ms1;
MyString ms2(ms1);
cout << ms2;
MyString ms3 ("hello MyString");
ms1 = ms3;
cout << ms1;
system("pause");
return 0;
}
MyString
最新推荐文章于 2022-01-16 17:35:15 发布