很基礎的一些概念性問題,求教!

amfer 2003-07-19 12:17:00
本人使用C++BUILDER時間不久,C++基礎也不怎麼好,一直被一些小問題困擾,在這裡列出幾個,請各位指點.

1.在聲明一個可以讓別的窗体使用的變量時,是把它放在PUBLIC段中然後FORM1->XXX好點,還是把它作為全局變量,在別的窗体裡extern xxx來引用它好點?

2.如果遇到像操作註冊表或者ini文件的情況,這種操作可能會貫穿程序的很多地方.那麼我該每次操作之前new一個對象,操作完成後再delete它呢,還是在程序啟動時new之,程序結束時delete之?

3.程序一大,就會有一些莫名奇妙的問題,有時很難找到原因,比如一個變量在某個操作後就會變值,但我這個操作只是讀這個變量,並沒有寫,這是不是叫內存洩漏?是怎樣造成的?怎麼防止內存洩漏?
...全文
16 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
编译失败 2003-07-21
  • 打赏
  • 举报
回复
ThinkX(思·秋天的树·求职中):

singleton是啥東西?
joymachines 2003-07-21
  • 打赏
  • 举报
回复
extern xxx
尽量不用
推荐使用一个单独的文件,存放新建的类
boat2002w 2003-07-21
  • 打赏
  • 举报
回复
上课来了
zearbo 2003-07-21
  • 打赏
  • 举报
回复
如果这个变量与窗体无关,我认为可以创建一个类。写在类里。如果是在整个系统的很多地方都要使用,我建议使用一个的静态对象。
失落的羊 2003-07-21
  • 打赏
  • 举报
回复
搂主的问题也是我的困惑所在。关注!
nanhui 2003-07-20
  • 打赏
  • 举报
回复
1、变量最好放到类中。在别的窗体引用时用FORM1->XXX
2、两个都可以,只要NEW出来的东东不大,就可以让它一直保留着,直到程序结束时才去DELETE
  这特别适用于COM+组件的调用。而如果NEW出来的占用太大的内存那么就应该考虑每一次操作都  进行NEW和DELETE
3、一般来说这是你程序的问题。这些问题主要是个人的编程习惯
Killmyself 2003-07-20
  • 打赏
  • 举报
回复
记得哪看过,全局变量越多,到后来莫名奇妙的问题就越多!
hong668 2003-07-19
  • 打赏
  • 举报
回复
1,因为是全局变量我个人认为是加一个单元文件存放这些变量的,包含到头文件里操作。

2。要看具体你写的程序需要。

3,这不是内存泄露,记住在每一次申请内存的时候,如以NEW申请的话都在相应的析构函数据里DELETE掉就OK了,
ThinkX 2003-07-19
  • 打赏
  • 举报
回复
1. 很无所谓,如果这个变量与Form没有任何关系,没有理由放入form的public中。我的做法有时是使用一个全局的结构包装全局变量,其实做法还有很多很多。
2. 对于ini等配置,如果程序在运行时期经常访问,而且其占内存不多,我会做成singleton,
只允许实例化一个。
3. 99.9999999999999%是你自己的问题。
猎人66 2003-07-19
  • 打赏
  • 举报
回复
1,个人认为,各有各的好处吧,public里边定义的,每实例化一次,就会创建一个,而全局的,始终只有一个;

2,无所谓吧,个人喜欢,我一般用得全局的

3,检查程序,一般是程序问题


sprewellkobe 2003-07-19
  • 打赏
  • 举报
回复
同意: ThinkX(思·秋天的树·求职中) 的
runnerrunning 2003-07-19
  • 打赏
  • 举报
回复
up....
zywx 2003-07-19
  • 打赏
  • 举报
回复
1.作用域越小越好,所以如果可以,就尽量放到类里面
2.用完就delete,这样避免资源浪费
3.肯定是程序的问题,可以打开CodeGuard来看看有没有内存泄漏
nuaacims 2003-07-19
  • 打赏
  • 举报
回复
extern xxx
这样的做法很多啊 ... 在cpp中申明全局变量,然后专门放到一个头文件中,这个头文件在包含一下比较常用的函数,其他用到变量的Unit全都引用这个头文件就好了...
zxcdewq 2003-07-19
  • 打赏
  • 举报
回复
extern xxx
这样做法不多吧,

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧