头文件Hi_String.h
#include<iostream> #include<string.h> using namespace std; class Hi_String { public: Hi_String(); ~Hi_String(); Hi_String(const Hi_String& mystring); Hi_String(const char* const mystring); int GetLen() const {return itsLen;} const char* GetString() const {return itsString;} /* 对于等号可以这样理解 s1=s2相当于实例化对象s1调用函数等号; 而s2相当于函数等号的输入参数 所以operator=输入参数不可改变的const Hi_String& mystring; */ /* 关于重载符号函数的函数返回不是很明白; 声明时候用Hi_String&Hi_Stringvoid */ Hi_String& operator=(const Hi_String& mystring); Hi_String operator+(const Hi_String& mystring); void operator+=(const Hi_String& mystring); char& operator[](int offset); char operator[](int offset) const; private: int itsLen; char* itsString; //为什么要加一个私有构造函数;意义何在 Hi_String(int Len); /* 因为在operator+时,需要创建一定长度的Hi_String; 但是这个构造函数不想让用户用;只在自己的公有函数中调用 所以声明为私有构造函数 */ };
源文件Hi_String.cpp
#include"Hi_String.h" Hi_String::Hi_String() { itsString = new char(1); itsString = '