1. 设计一个class,总是先思考需要什么样的(私有)数据,字符串里面一定会放很多字符。想法1是利用数组存放字符,但是这种想法不好,因为不知道要存放的字符有多少,占多少空间不知道,所以预先设定的大小不好确定。所以私有数据应该是一个指针(第12行),将来放多大的内容,用new的方式动态分配内存大小。32位电脑上,一个指针占4个字节的大小(网友1:64位系统,vc中的指针变量大小也是4bytes)。
1 #pragma once 2 class String 3 { 4 public: 5 String(const char* cstr = 0); 6 String(const String& str); 7 String& operator=(const String& str); 8 ~String(); 9 char* get_cstr() const { return m_data; } 10 11 private: 12 char* m_data; 13 }; 14 15 inline 16 String::String(const char* cstr = 0) 17 { 18 if (cstr) 19 { 20 m_data = new char[strlen(cstr) + 1]; 21 strcpy(m_data, cstr); 22 } 23 else 24 {//未指定初值 25 m_data = new char[1]; 26 *m_data = '