关于C++数据结构的问题

来源:百度知道 编辑:UC知道 时间:2024/09/28 14:51:38
为字符串定义一个ADT 你的ADT 要包含逻辑定义以及字符串的常见操作(每个操作定义为一个函数,请确定每个函数的输入输出参数)

const int maxLen = 128;//字符串的最大长度

class String
{
public:
String(const String& ob);//复制构造函数,由一个已有的字符串对象ob构造一个新字符串
String(const char* init);//构造函数,构造一个最大长度为maxLen,由init初始化的字符串
String();//构造函数,构造一个最大长度为maxLen,实际长度为0的字符串
~String(){delete [] ch;}//析构函数,释放动态分配的串空间
int Length() const {return curLen;}//函数返回字符串的长度
String& operator()(int pos, int len);
//当0<=pos<=maxLen且0<=len且pos+len<maxLen时,则在字符串中从pos所指出
//位置开始连续取len个字符组成子串返回
int operator == (const String& ob)const {return strcmp(ch,ob.ch) == 0;}
//判是否相等.若字符串与ob相等,则返回1,否则函数返回0
int operator != (const String& ob)const {return strcmp(ch,ob.ch) != 0;}
//判是否不相等.若不相等,返回1,否则函数返回0
int operator !() const {return curLen==0;}
//判是否串空,若字符串为空,则函数返回1,否则返回0
String& operator = (const String& ob);
//串ob赋值给当前的字符串
String& operator += (const String& ob);
//若length(*this)+length(ob)<=maxLen,则把串ob接在字符串后面
char& oper