| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 425 人关注过本帖
标题:类的问题
只看楼主 加入收藏
black_eagle
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-8-19
收藏
 问题点数:0 回复次数:6 
类的问题
大家帮我来看看这段程序出了什么问题呀,为什么不能通过getvalue输出字符串?
#include <iostream>
#include <string>
using namespace std;
class cmyclass{
public:
cmyclass(const char*pstr){
m_pstr=new char [strlen(pstr)+1];
strcpy(m_pstr,pstr);
cout<<pstr<<endl;
}
void getvalue(char* pstr)const{
pstr=new char [strlen(m_pstr)+1];
strcpy(pstr,m_pstr);
}
private:
char*m_pstr;
};
int main()
{
cmyclass myobj("This is my class");
char *pstr;
myobj.getvalue(pstr);
cout<<pstr<<endl;
delete[]pstr;
return 0;
}


搜索更多相关主题的帖子: private include public 字符串 
2006-08-26 14:39
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
你改一个地方试试:void getvalue(char* &amp;pstr)const   //加一个&amp;

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-08-26 15:42
heliujin
Rank: 2
等 级:论坛游民
帖 子:249
专家分:14
注 册:2006-3-14
收藏
得分:0 

请问 这里的m_pstr和pstr指向的是同一个地址吗?
谢谢了

2006-08-26 18:13
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
你是说构造函数那?
不是的,只是分配和他大小一样的内存

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-08-26 18:36
black_eagle
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-8-19
收藏
得分:0 

明白了,谢谢二楼的!!!

[此贴子已经被作者于2006-8-28 13:32:48编辑过]


2006-08-26 18:37
yeshirow
Rank: 4
等 级:贵宾
威 望:10
帖 子:854
专家分:0
注 册:2006-6-8
收藏
得分:0 
還有你應該在 ~cmyclass() 析構中釋放 m_pstr, 因爲你在 cmyclass() 構造時用 new 分配了空間

原來朋友仔感情再天真, 亦是我永遠也會愛惜的人, 明日愛他人, 也記住學會不要緊; 原來朋友比戀人更高分, 亦讓我開始懂得不記恨, 若大家都敏感, 我更要永遠記得拒絕再因小事怪人, 爲何沒有這條校訓...Twins-朋友仔 MCSD Training
2006-08-26 23:17
black_eagle
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-8-19
收藏
得分:0 

2006-08-27 16:53
快速回复:类的问题
数据加载中...
 
   



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

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