C++动态数组类的封装实例(3)
如果你弄懂了上面DArray类的写法,那么实现String类应该就不难了。因为面试官一般只是想考查你能不能正确地写出构造函数、析构函数、拷贝构造函数、拷
如果你弄懂了上面DArray类的写法,那么实现String类应该就不难了。因为面试官一般只是想考查你能不能正确地写出构造函数、析构函数、拷贝构造函数、拷贝赋值运算符以及+、[ ]、<<、>>运算符重载等等。下面给出一个String类的接口,你可以自己试试手实现一下:
class String{ friend ostream& operator<< (ostream&,String&); //重载<<运算符 friend istream& operator>> (istream&,String&); //重载>>运算符 public: String(); // 默认构造函数 String(const char* str); // 带参构造函数 String(const String& rhs); // 拷贝构造函数 String& operator=(const String& rhs); // 拷贝赋值运算符 String operator+(const String& rhs) const; //operator+ bool operator==(const String&); //operator== bool operator!=(const String&); //operator!= char& operator[](unsigned int); //operator[] size_t size() const; const char* c_str() const; ~String(); // 析构函数 private: char *m_data; // 用于保存字符串 };
本文所述DArray类和String类的源码及测试代码可点击此处本站下载。
精彩图集
精彩文章