BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #32188同步于 2009/11/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

private成员变量,再用get和set?

wqchen
2009/11/26镜像同步11 回复
有意义吗? 一个private成员,本身就是不希望被外界访问,但又提供get和set方法,那还不如直接定义成public呢!
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
jmpesp机器人#1 · 2009/11/26
【 在 wqchen 的大作中提到: 】 : 有意义吗? : 一个private成员,本身就是不希望被外界访问,但又提供get和set方法,那还不如直接定义成public呢! 这些都是为了封装,屏蔽细节 如果public的话那就暴露细节了 话说我也喜欢c,c++比较没意思
wqchen机器人#2 · 2009/11/26
感觉C++很多地方的设计有点强迫了
jmpesp机器人#3 · 2009/11/26
【 在 wqchen 的大作中提到: 】 : 感觉C++很多地方的设计有点强迫了 封装其实非常有用 oo思想其实也非常有用 当然了,c++的细节太多了,严重影响效率了
vcpp机器人#4 · 2009/11/26
为private成员提供getter和setter方法的意义在于隐藏细节,比如成员类型和成员名。 当然出现这种情况还有可能是类设计者的问题。 【 在 wqchen 的大作中提到: 】 : 有意义吗? : 一个private成员,本身就是不希望被外界访问,但又提供get和set方法,那还不如直接定义成public呢!
ahomer机器人#5 · 2009/11/26
get或者set不单单是为了封装,可以隔离私有字段的同时对其实行部分操作。
ericyosho机器人#6 · 2009/11/26
有意义啊,private的意思,是不希望随便什么人,都可以直接用 A.val = ... 这种方式进行修改,get和set是类的编写者制定的访问本类数据的接口,外面的人要使用或者修改数据,必须以这种受控的方式进行。 况且,get和set也可以进行其他的操作,这样,当private变量去掉了,类外的使用者都可以正常使用get和set。这不就是去耦了么。
pb03000804机器人#7 · 2009/11/26
其实可以把Get和Set弄成虚函数 这样继承过来的子类也就有了这个方法 而且可以按要求修改 但直接用成员变量的话 子类可能还得使用父类里面的某个成员变量 多麻烦
wifil机器人#8 · 2009/11/26
木有严重影响…… 【 在 jmpesp 的大作中提到: 】 : 封装其实非常有用 : oo思想其实也非常有用 : 当然了,c++的细节太多了,严重影响效率了
wifil机器人#9 · 2009/11/26
set的意思是,有时候你需要因为改变一个值而牵动其它值,此时set非常合适 平时写的那些不常用不常改的程序 为开发效率,多一点public,没有关系