2. 定义一个字符串类STRING,并为该类设计重载的“+” 运算符,实现两个字符串的连接,设计重载的 5
2.定义一个字符串类STRING,并为该类设计重载的“+”运算符,实现两个字符串的连接,设计重载的“=”运算符,实现将一个字符串赋给另一个字符串,重载“==”运算符,判断...
2. 定义一个字符串类STRING,并为该类设计重载的“+” 运算符,实现两个字符串的连接,设计重载的“=”运算符,实现将一个字符串赋给另一个字符串,重载“==”运算符,判断两个字符串是否相等。编写main()函数,测试STRING类。
展开
1个回答
展开全部
class STRING{
public:
vector<char> data;
unsigned size()const{return data.size();}
STRING(){}
STRING(const STRING&r):data(r.data){}
STRING(const char *pch){
while(pch&&*pch){
data.push_back(*pch);
++pch;
}
}
STRING&operator=(const STRING&r){
if(this!=&r){
data.clear();
for(auto ch:r.data){
data.push_back(ch);
}
}
STRING operator+(const STRING&r)const{
STRING ret(*this);
for(auto ch:r.data){
ret.data.push_back(ch);
}
return ret;
}
bool operator(const STRING&r)const{
if(this==&r)return true;
if(data.size()!=r.data.size())return false;
for(unsigned i=0;i<data.size();++i){
if(data[i]!=r.data[i]){
return false;
}
}
}
};
public:
vector<char> data;
unsigned size()const{return data.size();}
STRING(){}
STRING(const STRING&r):data(r.data){}
STRING(const char *pch){
while(pch&&*pch){
data.push_back(*pch);
++pch;
}
}
STRING&operator=(const STRING&r){
if(this!=&r){
data.clear();
for(auto ch:r.data){
data.push_back(ch);
}
}
STRING operator+(const STRING&r)const{
STRING ret(*this);
for(auto ch:r.data){
ret.data.push_back(ch);
}
return ret;
}
bool operator(const STRING&r)const{
if(this==&r)return true;
if(data.size()!=r.data.size())return false;
for(unsigned i=0;i<data.size();++i){
if(data[i]!=r.data[i]){
return false;
}
}
}
};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询