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类的源码及测试代码可点击此处本站下载。
精彩图集
精彩文章





