| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 597 人关注过本帖
标题:类成员的初始化问题
只看楼主 加入收藏
墨清扬
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:294
专家分:817
注 册:2011-10-4
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
类成员的初始化问题
我定义了一个类,里面有指针成员,是要分配内存的,所以一定要自己定义构造函数,而且要传入参数来分配合适的内存
问题是,要用这个类定义一个全局变量,但是用来初始化的值在用户输入后才知道,这样的话在定义时就不能用上述构造函数构造了
我现在的解决办法是定义一个不用参数的构造函数,指针都赋值为空,再定义一个initial来替换原来的构造函数,用户输入后用这个函数来分配内存
但是这样是有隐患的,用户不知道一开始定义出的变量不能直接用,因为一些成员函数要访问指针指向的内存,而且析构函数要释放指针指向的内存

那么有没有什么好办法能解决这个问题呢?
搜索更多相关主题的帖子: 内存 而且 initial 用户 
2012-04-25 20:29
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:0 
你这更多的是逻辑问题,只有先解决的逻辑错误
2012-04-26 08:25
天使梦魔
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
收藏
得分:0 
把功能接口添加"必须初始化"的参数,这样用户在使用这个功能前必须给出"初始化"参数.
2012-04-26 11:38
墨清扬
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:294
专家分:817
注 册:2011-10-4
收藏
得分:0 
回复 2楼 rjsp
能否详细地说一说?

酱油实习生
2012-04-26 20:01
墨清扬
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:294
专家分:817
注 册:2011-10-4
收藏
得分:0 
回复 3楼 天使梦魔
能具体点吗?

酱油实习生
2012-04-26 20:01
specilize
Rank: 4
等 级:业余侠客
帖 子:126
专家分:247
注 册:2011-2-20
收藏
得分:5 
即使用单件可以消除隐患,在第一次使用时初始化,分配内存,但是用户还是会感觉很奇怪,怎么突然跑出一个东西来叫我输入一个值,并且每次出现的位置不固定,这次在这,下次在那,因为全局变量的首次使用时间不固定,不知rjsp所说的逻辑错误是不是指这
2012-04-26 20:47
墨清扬
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:294
专家分:817
注 册:2011-10-4
收藏
得分:0 
回复 6楼 specilize
我觉得这个很正常吧,有些东西使用之前就一定要有确定的参数的,比如你画图就要先设置画布大小等等一样,只不过有默认的参数而已。

酱油实习生
2012-04-27 19:34
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:15 
如果你不想劳烦用户的话,可以自己控制内存的大小。在一开始分配一个预估的值(也可以靠读配置文件来确定应该用多大),如果将来发现不够用,可以再自动扩展。可以给一个接口,让用户手动调整大小。
如果你觉得这样实现起来麻烦,我觉得就一上来要求用户提供一些初始化信息也很正常。不过正如 6楼 所说,不要搞成随机位置,这样容易打扰用户。
2012-04-29 10:30
快速回复:类成员的初始化问题
数据加载中...
 
   



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

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