【问题标题】:a ref class can only inherit from a ref class or interface classref 类只能从 ref 类或接口类继承
【发布时间】:2013-06-13 03:54:57
【问题描述】:

在一个 C++/CX 项目上工作,它使用了我需要从 C++ 层继承的 C++ 代码,但不断收到此错误:

引用类只能从引用类或接口类继承

有没有办法可以绕过它,从网上查了一下发现不能直接继承,代码是这样的:

C++ 代码

A类

C++/CX

公共参考 B 类:公共 A

这是不可能的,你知道我可以通过不同的设计达到相同的“结果”吗

如果我在 C++/CX 项目中创建一个 C++ 类,我也不允许将其设置为公共

【问题讨论】:

  • 为什么需要从C++层继承?根据原因(即您希望如何使用这些类),可能的解决方案会有所不同。所以请给我们更多的见解。
  • 别担心设法修复它,只是将它用作私人然后推送我需要的东西
  • 这是非常基础的,ref class 是一个 COM 包装器。 COM 不支持实现继承。它如此普遍适用的更大原因之一。您需要退回到封装。您可能最终会得到一大堆小方法,这些方法除了将调用转发到封装的 C++ 类之外什么都不做。
  • 这就是我最终做的,感谢您的帮助!仍然希望有另一种方法,即不是过程密集型,如果您想到一种减少封装方法数量的方法,请发表评论:)再次感谢!

标签: c++ c++-cx


【解决方案1】:

以及如何使用interface 而不是纯class

public interface class A
{
};

public ref class B : public A
{
};

更多详情here.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-26
    • 1970-01-01
    • 2021-09-12
    相关资源
    最近更新 更多