二 Class with pointer members(Class String)
1. 测试代码(使用效果)
int main() { String s1(), String s2("hello"); //构造函数 String s3(s1); //拷贝构造 cout << s3 << endl; s3 = s2; //拷贝赋值 cout << s3 << endl; }
2 Big three(三种特殊函数)
class String { public: String(const char* cstr = 0); String(const String& str); //参数为相同类型对象的引用,拷贝构造 String& operator=(const String& str); //拷贝赋值 ~String() //析构函数 char* get_c_str() const{ return m_data; } private: char* m_data; };
2.1 ctor & dtor(构造与析构)
inline String::String(const char* cstr = 0) { if(cstr){ m_data = new char[strlen(cstr)+1]; strcpy(m_data,cstr); } else{ //未指定长度 m_data = new char[1]; *m_data = '