【发布时间】:2015-07-18 06:31:52
【问题描述】:
在Java中,通常建议将类变量声明为private。
我想知道 C++ 也像 Java 一样。但如果是的话,问题是(我认为),大多数班级应该有get()、set() 功能,我认为这很麻烦。但如果这是良好的编程习惯,我会遵循它。请分享您的意见。
【问题讨论】:
-
这完全取决于你想要什么。如果你想要一个 C 风格的结构风格,可以访问原始数据,那么这不是你想要的。如果你想在 set 或 get 上做一些其他的操作,setters/getters 是要走的路。
-
视情况而定。例如,
std::stack<T>有一个protected数据成员。 -
在嵌入式系统中呢?请给我建议。
-
将类成员声明为私有不是好的 java 设计,它是 好的面向对象 设计。您希望尽可能多地封装类的功能。您编写的访问私有成员的函数越多,您的类的封装就越少。这并不是对创建函数的可怕警告,它只是意味着不要“自动”创建访问器和修改器函数。
-
嵌入的两侧。一是小而快,克服了平台的限制。另一个是永远不会崩溃。慢很烂,但如果自动驾驶仪坠毁,飞机可能会跟随。这通常被认为非常非常糟糕。对我来说,封装是关于自卫的。每个对象都使用编写良好的 getter 和 setter 来保护它的状态,用于需要共享的数据,而不共享不需要的数据。从妄想症开始,锁定一切。执行会告诉你某些东西是否太慢,而分析器会告诉你这是否是你装甲访问器的方式。在此之前,请不要私信。
标签: c++ object-oriented-analysis