繁体   English   中英

C ++:使用朋友类而不是编写getter / setter的糟糕做法?

[英]C++: Bad practice to use friend classes instead of writing getters / setters?

我有两个课程,在一个方面紧密合作。 它们都使用彼此的功能,这些功能应该仅由它们使用而不是由任何其他类使用。

  • 如果我让这两个类成为朋友,这样他们可以直接访问和操作彼此的成员变量,而不使用任何getter / setter函数,这是不好的做法吗?

getter和setter以及friend类都减少了封装并增加了耦合。 至少友谊将减少的封装限制为需要额外访问的显式指定的类。 这两个类现在紧密耦合的事实不一定是坏事,它们可以被认为是整体设计的单个单元。

一点都不。 这是一个常见的事情,有效的,你有一个类,但它必须分为两个终身和其他实现的东西。 在这种情况下,朋友课肯定是要走的路。

如果更改一个类的实现意味着您必须更改另一个类的实现,那么这绝对适用。 特别是如果你需要这两者之间的界面元素不适用于公开。

朋友类存在是有原因的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM