我看到了这样的答案:
COM是一种自己的技术。它满足了一些特殊需求 违反了许多良好的工程原则。例如,固体。标准 有比使用COM更好的方法。 - mkaes
知道什么是“更好的方式”非常有趣?
我们在项目IUnknown基类中使用,但不是COM技术本身。 IUnknown允许我们:
好的,存在boost :: intrusive_ptr,但到目前为止还不符合标准。即使它在那里,这将是单独的类来解决侵入式智能ptr的任务。假设它在那里,是的,我可以做一些事情
interface ITable : intrusive_ptr {}
interface IField : intrusive_ptr {}
但是QueryInterface()机制呢?
P.S。这个问题根本不是关于COM的。
答案 0 :(得分:2)
标准使用:在大多数情况下使用组合而不是继承(标准库中的继承非常少)。更喜欢基于模板的通用编程而不是运行时多态。更喜欢价值类型,而不是在任何地方保留未知终极类型的指针。你应该用C ++做的所有事情,而不是像Java一样对待它。