关于c++类的成员变量的疑问,该如何处理

关于c++类的成员变量的疑问
看了《代码大全》这本书,在其他地方也常有人提到,在c++类的设计中,成员变量最好都设为private,这样是为了类的封装,如果外部需访问这些成员变量,比如说读取成员变量或者修改成员变量,需在类定义中添加属性为public的成员函数,通过这些函数访问私有的成员变量。
  但我有个疑问,如果我设计的类中私有成员变量很多,有几十个,而其经常要要在类外部用到,那岂不是要添加几十个读取和设置私有成员变量的函数啊。
  还请熟悉C++的朋友指点一下啊。

------解决方案--------------------
那就看你的这个类能不能再细分成几个类了。
------解决方案--------------------
那就不是 C++ 类了, 只是一个 C 的 struct.
------解决方案--------------------
用内联函数。c++很多标准库中的解决方案就是用内联函数。这样你即解决了效率的问题,也解决了封装行的问题,应为编译器会在调用内联函数的地方把代码展开优化。比如一个查询大小的功能:
inline int size( void ){return _size;}
这样好多了。具体的内联函数的方面的介绍,主要咱也是菜鸟,没有仔细研究过,你不妨百度一下- -#能告诉我结果那就更好了!
------解决方案--------------------
没有问题。如果必要,添加几十个读取和设置私有成员变量的函数是很正常的。
------解决方案--------------------
设计得好的类很少要让外部访问它的成员变量,更绝不可能在很多地方都要访问。
------解决方案--------------------
这么多成员是干嘛用的?如果只有读写 定义个结构体更紧凑 如果确实有好多处理逻辑业务需求的功能需要用这些成员,还是private比较好,派生类如果也用就protected
------解决方案--------------------
如果读取和写入都是public且没有任何许可条件判断的话——那就是public变量
原则是原则,具体问题具体分析。java里还一切皆对象呢,也没看它取消基本数据类型

如果有些变量的读取和写入是需要条件判断的,那就用private封装起来,用get和set来控制
如果有些变量的读取和写入都不需要任何条件判断——直接public吧,绕那么多弯子有啥用?
------解决方案--------------------
探讨

如果读取和写入都是public且没有任何许可条件判断的话——那就是public变量
原则是原则,具体问题具体分析。java里还一切皆对象呢,也没看它取消基本数据类型

如果有些变量的读取和写入是需要条件判断的,那就用private封装起来,用get和set来控制
如果有些变量的读取和写入都不需要任何条件判断——直接public吧,绕那么多弯子有啥用?