运算符重载
[],==,!=,>,<,>=,<=,+,=,+=,<<,>>
mystring.h
#ifndef MYSTRING_H
#define MYSTRING_H
#include <iostream>
using namespace std;
class MyString
{
public://构造
MyString();
MyString(const char *str);
MyString(const MyString &mystr);
~MyString();
public://友元重载
friend ostream &operator <<(ostream &out, MyString &mystr);
friend istream &operator >>(istream &in, MyString &mystr);
public://内部重载
char& operator [](int index);
bool operator ==(MyString &mystr);
bool operator !=(MyString &mystr);
bool operator >(MyString &mystr);
bool operator <(MyString &mystr);
bool operator >=(MyString &mystr);
bool operator <=(MyString &mystr);
MyString operator +(MyString &mystr);
MyString& operator =(MyString &mystr);
MyString& operator +=(MyString &mystr);
bool operator ==(char *str);
bool operator !=(char *str);
bool operator >(char *str);
bool operator <(char *str);
bool operator >=(char *str);
bool operator <=(char *str);
MyString operator +(char *str);
MyString& operator =(const char *str);
MyString& operator +=(char *str);
public:
int length(void);
private:
char *str;
};
#endif // MYSTRING_H
mystring.cpp
#include "mystring.h"
#include <cstring>
MyString::MyString()
{
str = NULL;
}
MyString::MyString(const char *str)
{
this->str = new char[strlen(str) + 1];
strcpy(this->str, str);
}
MyString::MyString(const MyString &mystr)