找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 1743|回复: 5

类的问题

[复制链接]
发表于 2009-11-3 04:20:43 | 显示全部楼层 |阅读模式 IP:江苏扬州
大家帮我来看看这段程序出了什么问题呀,为什么不能通过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;
}
发表于 2009-11-3 04:20:44 | 显示全部楼层 IP:江苏扬州
你改一个地方试试:void getvalue(char* &amp;pstr)const   //加一个&amp;
回复

使用道具 举报

发表于 2009-11-3 04:20:45 | 显示全部楼层 IP:江苏扬州
请问 这里的m_pstr和pstr指向的是同一个地址吗?
谢谢了
回复

使用道具 举报

发表于 2009-11-3 04:20:46 | 显示全部楼层 IP:江苏扬州
你是说构造函数那?
不是的,只是分配和他大小一样的内存
回复

使用道具 举报

发表于 2009-11-3 04:20:47 | 显示全部楼层 IP:江苏扬州
明白了,谢谢二楼的!!!
回复

使用道具 举报

发表于 2009-11-3 04:20:49 | 显示全部楼层 IP:江苏扬州
還有你應該在 ~cmyclass() 析構中釋放 m_pstr, 因爲你在 cmyclass() 構造時用 new 分配了空間
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 17:40 , Processed in 0.198148 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表