返回信息流有意义吗?
一个private成员,本身就是不希望被外界访问,但又提供get和set方法,那还不如直接定义成public呢!
这是一条镜像帖。来源:北邮人论坛 / cpp / #32188同步于 2009/11/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
private成员变量,再用get和set?
wqchen
2009/11/26镜像同步11 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 wqchen 的大作中提到: 】
: 有意义吗?
: 一个private成员,本身就是不希望被外界访问,但又提供get和set方法,那还不如直接定义成public呢!
这些都是为了封装,屏蔽细节
如果public的话那就暴露细节了
话说我也喜欢c,c++比较没意思
【 在 wqchen 的大作中提到: 】
: 感觉C++很多地方的设计有点强迫了
封装其实非常有用
oo思想其实也非常有用
当然了,c++的细节太多了,严重影响效率了
为private成员提供getter和setter方法的意义在于隐藏细节,比如成员类型和成员名。
当然出现这种情况还有可能是类设计者的问题。
【 在 wqchen 的大作中提到: 】
: 有意义吗?
: 一个private成员,本身就是不希望被外界访问,但又提供get和set方法,那还不如直接定义成public呢!
有意义啊,private的意思,是不希望随便什么人,都可以直接用 A.val = ...
这种方式进行修改,get和set是类的编写者制定的访问本类数据的接口,外面的人要使用或者修改数据,必须以这种受控的方式进行。
况且,get和set也可以进行其他的操作,这样,当private变量去掉了,类外的使用者都可以正常使用get和set。这不就是去耦了么。
其实可以把Get和Set弄成虚函数 这样继承过来的子类也就有了这个方法 而且可以按要求修改 但直接用成员变量的话 子类可能还得使用父类里面的某个成员变量 多麻烦
木有严重影响……
【 在 jmpesp 的大作中提到: 】
: 封装其实非常有用
: oo思想其实也非常有用
: 当然了,c++的细节太多了,严重影响效率了