【发布时间】:2012-07-25 15:25:34
【问题描述】:
给定:
A 类的对象包含一个对象数组。
这些对象中的每一个都必须实现一些接口 IB,因为 A 使用 IB 的方法。
这些对象由客户端传递给 A 类的对象,它们属于 C 类型或其子类。 A 必须将这些对象返回给客户端。
问题:A 必须对 C 一无所知,只知道 IB,但 A 必须返回 C。
在 C++ 中有没有不安全强制转换的标准解决方案?
【问题讨论】:
-
听起来您在编写 Java 上花费了太多时间。 C++ 没有与
class分开的“接口”的概念。因此,IB 必须是一个类,并且 A 可以简单地将(指针|引用)返回到 IB。 C 必须(显然)从 IB 派生,但 A 不需要知道这一点。 -
这个答案可能会给你一些想法:stackoverflow.com/questions/7950711/…
-
你说 unsafe casts 好像
static_cast等是不安全的。如果使用得当,它们是绝对安全的。
标签: c++ oop design-patterns