请教一道C++类定义的练习题

练习题让我们自定义一个简单的字符串类,各位高手,我们老师说了C++的确自己已经定义过了这个类,不过这个练习题的目标主要是为了考察一下我们对内存操作、引用等方面的基础,我自... 练习题让我们自定义一个简单的字符串类,各位高手,我们老师说了C++的确自己已经定义过了这个类,不过这个练习题的目标主要是为了考察一下我们对内存操作、引用等方面的基础,我自己写了一个类,可是编译的时候老是出错误,具体大家可以看一下下面的图。

我发现如果定义处理一个存在内存动态申请的类很麻烦,特别是当和引用或者指针结合起来的时候。请教各位有没有好办法可以解决这个问题
void MyString::show()
{
cout<<"len="<<len<<'\t'<<"str="<<str<<endl;
}
MyString & MyString::operator=(const MyString &s)
{
if(str)
delete[] str;
len=s.len;
str=new char[len+1];
strcpy(str, s.str);
return *this;
}
MyString operator+(MyString &a, MyString &b)
{
int templen=a.len+b.len;
char *temp=new char[templen+1];
strcat(temp,a.str);
strcat(temp,b.str);
MyString k(temp);
return k;
}
int main()
{
MyString a("1,23,456"), b, c;
cout<<"After c=a+b, the information of c:"<<endl;
c=a+b; //K
}
展开
 我来答
lyn5284767
2011-12-16
知道答主
回答量:5
采纳率:0%
帮助的人:8297
展开全部
没图,不知道什么意思。
#include <iostream>
using namespace std;

class STR
{
string str;
};

STR *Str;
void main()
{
Str=new STR; //分配内存
delete Str; //删除内存
}
这样?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a883624
2011-12-16
知道答主
回答量:16
采纳率:0%
帮助的人:7.5万
展开全部
看不清
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忘至白葬不情必0T
2011-12-16 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:90%
帮助的人:1.2亿
展开全部
把源代码发上来让大家看看
更多追问追答
追问
你好,你可以把问题补充的部分放到机器里面跑一下,看看你的报错是不是和我的一样,我的报错是说什么"no matching function for call to MyString::MyString(MyString)",到底发生了什么?
追答
你这个代码不全啊。仅看错误提示,好像是你没定义值拷贝构造函数。你的两个重载函数中,return *this;和return k;都会隐式调用值拷贝构造函数,你最好自己定义一个。类拷贝构造函数的执行代码和operator=的几乎是一样的,很好写的。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式