#ifndef __STRING__ #define __STRING__ #include<ostream> 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; }; inline String::String(const char* cstr) //这里不能重新定义默认参数,如果需要参数的其他值,则应将默认参数留空。 { if (cstr) //检查cstr是否为空指针 { m_data = new char[std::strlen(cstr) + 1]; strcpy_s(m_data, (std::strlen(cstr)+1),cstr); } else { m_data = new char[1]; *m_data = '