c++大神们!!麻烦您们了!
C++第二阶段测试题目:字符串类的实现 班级:18级嵌入式
时间:2019.4.19
知识点:类、普通构造函数、深层拷贝构造函数、析构函数、
静态成员、友元、运算符重载
实现一个字符串类。
要求:
1. 字符串的保存必须在堆空间,即是使用 new char生成的空间保存字符串
2. 字符串对象必须在超出作用域时及时释放空间
3. 实现字符串类下表中列出的所有成员
4. 写出检测代码测试每个成员函数
类名MyString
类成员或函数部分描述如下:
序号 类成员原型 功能描述 其他
1 char*str; 保存字符串的堆空间地址的指针 数据成员
2 MyString(char *) 有参普通构造函数
3 MyString(MyString&) 深层拷贝构造函数
4 MyString( ) 无参构造函数
5 ~ MyString( ) 析构函数
6 intgetLen() 得到字符串的长度 成员函数
7 char getCharAt(int index) 得到字符串中第index个字符 成员函数
8 MyString operator+( MyString& ) 实现2个字符串连接 运算符重载
9 bool operator<( MyString& ) 比较2个字符串 运算符重载
10 ostream operator<<( ostream & , MyString& ) 析取运算符重载;用于输出字符串内容 运算符重载
11 void display() 显示字符串内容 成员函数
bool operator<( MyString& ) 比较2个字符串说明:
对<运算符重载
< 可以比较2个字符串类对象的大小
比较规则如下:
例:
a 和 b是MyString 类型对象
a<b表达式
2个字符串完全相同,返回a<bfalse
若2个字符串前n个字符相同,
第n+1个字符不同,
若a的第n+1个字符的ASCII小于b的第n+1个字符的ASCII,则a<b返回true
若a的第n+1个字符的ASCII大于于b的第n+1个字符的ASCII,则a<b返回false
页:
[1]