永发信息网

C++中使用全局变量好,还是public的类成员变量好?

答案:5  悬赏:20  手机版
解决时间 2021-12-01 18:56
C++中使用全局变量好,还是public的类成员变量好?
最佳答案
1 C++杜绝全局变量。
2 C++也不建议把成员变量设置为public。(而且简单的pubic设置和全局化也没有任何关联,估计你想要的是static的public变量)

不知道你为什么会有这类问题,C++看待角度应该和C有截然不同的视角,不要用C的想法去套C++。
我无法估计你要什么,我只能估计给个建议:
1 如果你需要全局访问的对象(注意,尽可能不用变量来描述),可以参考使用单例模式的类设计。
2 最好的方法,还是将需要全局访问的内容转换为非全局访问。
3 上面两个之间的权衡没有绝对标准,一般以2为主导,1的方法只适合横向切入系统的类设计,例如日志类、配置类等。(其实,也可以进行非全局融入)

如果你愿意,可以把你的具体问题罗列一下,我给点建议。追问是这样的,我在写一个摄像机拍图存图图像处理有关的程序。
有很多类似char imgname[100]; FILE *pFile1; 的全局变量,看来是要都加入到成员变量里,在C++里再设全局变量就和安全性的本质特点相违了~
还有一个问题,现在摄像机拍图存图对应了一个类,我再添加很多图像处理方面的函数,也加进去关系不大还冗杂,是再新建一个类比较好吧?
全部回答
public成员变量 必须必~
public成员变量
因为全局变量作用范围太大,可能会污染名字空间
但是public的类成员的作用范围只在类里边,是有限制的
全局的变量 只需在头文件直接声明就可以全局使用了。
使用PUBLIC类的话还要声明创建一个全局的类对象,才能在全局访问。
两个相比的话没有什么好坏之分,自己能用的顺手才是最好的。
C++全局变量 跟C中的全局变量一样
public的类成员变量 跟C中的结构体变量一样

这好不好,就看你如何设计你的程序. C++与C不一样,C++是面向对象的.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么赛尔号里的闪光波克尔和艾斯菲亚不能成
求从今天开始做魔王百度云。
求女儿郑若妍生日的藏头诗
古代家族关系是什么样的
黄焖鳝鱼的做法步骤图,黄焖鳝鱼怎么做好吃
2017年7月29日中午12点出生的生辰八字
忽然不知道哪里冒出来很多小咬怎么回事儿
一齐 一齐造句
围法图片,小丝巾搭配衣服图片,丝巾怎么系好
丁西年,三月,二九曰
购进钢材用于在建工程所得税扣除吗
30万元除以百分之五等于多少多少万元
合同协议中,本页无正文是什么意思
借款中的几分利是什么意思?比如借了十万块钱
360安全浏览器留后门,还在跟腾讯作对吗?
推荐资讯
书fa常用的古诗词名句对联(3)八字联
成语:三_四_
柒个我里女主房间的凳子 是什么
哈利波特、憨豆先生、火拼时速、麦兜哪两部适
雅加达的地理环境
3月15日生日命运,三月十五日是什么星座
联通的一张不想要了卡里的话费能转到另一张卡
携程白金卡 你们有没有申请过提额成功的
12. To my surprise, some of my students st
在室内木地板用什么篮球鞋比较好?
洛阳从广州市场到关林从几路车
泡泡少儿辅导中心地址在哪,我要去那里办事,
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?