c++ - 多重分派(dispatch)如何违反 C++ 中的封装

标签 c++ encapsulation

1.谁能解释多重分派(dispatch)如何违反封装(使用 C++)?

我正在阅读 scott meyers item31,他说“我们已经非常反对封装,因为每个碰撞函数都必须知道它的每个兄弟类,即那些继承自 GameObject 的类。”

如果类 A 与其他类有多个依赖关系,例如 B、C、D 等,它仍然只能通过其他类的接口(interface)访问数据。这将如何违反类封装?在一些文本中,我还阅读了 multiple dispatch, violates object based encapsulation。什么是基于对象的封装? (谁能解释这在 C++ 中的含义)。提前致谢

最佳答案

Meyers 所说的是一个类必须知道另一个类,否则它不需要知道的事实是封装性的损失。它必须了解 sibling 才能实现碰撞功能。如果我们实现了封装,则所有 sibling 都不需要知道任何其他 sibling 类。

关于c++ - 多重分派(dispatch)如何违反 C++ 中的封装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28122552/

相关文章:

c++ - 向作用域枚举添加按位运算和 bool 值转换——圣诞节探索

c++ - 从int64_t转换为double到int64_t再次更改其值

c++ - 类封装 : how to prepare code for adding new classes?

julia - 如何以与 Julia 中未嵌套变量相同的方式访问嵌套结构中的变量?

oop - OCaml封装

vb6 - 表单控件封装

javascript - JavaScript 中的公共(public)和特权方法 : Why are they called that way?

c++ - 在 C++11 中从 C++17 重新实现 std::map::try_emplace()?

c++ - 强制编译器选择以 const T& 作为参数的复制构造函数

c++ - 如何使用makefile从C中的另一个目录包含.a静态库和.h文件?