| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 990 人关注过本帖
标题:[求助]关于字符串问题
只看楼主 加入收藏
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

我知道这是局部变量,所以我用了返回引用,这样就可以解决那个问题了啊


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-18 10:27
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
那为什么我的代码,和发在这里的代码格式不一样呢?

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-18 10:30
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
还有,为什么需要拷贝函数,这里参数都是用的引用

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-18 10:30
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 
对于重载的方法:
[CODE] verb operator+(const verb &a)
{
verb t;
t.leng=leng+a.leng;
t.str=new char[t.leng+1];
strcpy(t.str,str);
strcat(t.str,a.str);
return t;
}[/CODE]
你要是返回引用的话,这个方法里的t在方法执行完了之后是要被清除的,你返回t的引用不就等于返回了被释放的指针

世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-05-18 11:11
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

哦,理解了


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-18 15:16
yanglinayp
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-3-21
收藏
得分:0 
verb(char *i)
{
leng=strlen(i);
str=new char[leng+1];
strcpy(str,i);
}
~verb(){delete [] str;} //为什么要在这里delete [] str?????
verb operator+(const verb &a)
{
verb t;
t.leng=leng+a.leng;
t.str=new char[t.leng+1]; //为什么 不能写成t.str=new char[t.leng] ?
strcpy(t.str,str);
strcat(t.str,a.str);
return t;
}
verb& operator=(const verb &a)
{
leng=a.leng;
delete []str; //为什么要释放str空间???
str=new char[leng+1];
strcpy(str,a.str);
return *this;
上面这些我反复思考却得不到合理的解释,请您指点一下好吗??辛苦了!!!

我是小小登山者!
2006-05-20 00:55
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
to yanglinayp:
首先,构造函数分配的是字符数组,所以析够函数就的释放数组,所以是delete [] str;这种形式.
然后因为字符串结尾都有一个'\0'空字符,所以要多分配一个位置
最后因为你要重新分配str的内存空间必须先释放,
delete []str; //为什么要释放str空间???
str=new char[leng+1];
所以要delete [] str;
回答完毕

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-20 11:06
yanglinayp
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-3-21
收藏
得分:0 

谢谢!这个贴子真的是太精华了,让我受益非浅!大家的真诚付出好伟大,谢谢!!


我是小小登山者!
2006-05-20 21:11
快速回复:[求助]关于字符串问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015171 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved