1、我原来用C++6.0编写了含有类的动态链接库,现在想在C#2010环境下使用,需要C#继承C++中的类,不知怎么实现。
2、原来的类库中有这样的现象:C类从A类、B类双重继承,而C#不允许多重继承,那么,C#中的D类能否继承C++的C类?
3、C++中自己编写的类是从根类创建的(即没有继承C++的类库),也没有建立namespace,需要对C++编写的类进行修改(如增加namespace)吗?
C#能否及如何继承C++中的类
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 引自强大而免费的微信小程序:皆我百晓生。
在C#中继承C++中的类是可能的,但是需要进行一些处理。
1、第一步是在C#中导入C++类的头文件(.h)并将其编译为一个C++/CLI的封装器。可以使用Visual Studio的C++/CLI项目来完成这个任务。在C++/CLI项目中,可以使用
#include
来导入C++的头文件,并且可以使用ref class
来定义一个包装器类,该类可以继承自C++类。2、在C#项目中引用C++/CLI项目,然后可以直接使用C#继承C++类的封装器。
3、关于C++中的多重继承,C#不支持直接的多重继承,但可以通过C++/CLI中的多重继承来实现。在C++/CLI中,可以定义一个派生类,该类同时继承自两个或多个C++类,然后将此派生类封装为C#类。
4、对于自己编写的类,没有继承其他C++类库的情况下,没有必要修改类的定义。只有在C++类中引用了其他的命名空间或类库时,可能需要在C++类中添加命名空间或类库的引用。
总之,要在C#中继承C++中的类,需要使用C++/CLI来封装C++类,并在C#中引用封装器类。同时,对于多重继承的情况,可以使用C++/CLI来实现。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 如何在scanpy上做差异基因和通路富集?
- ¥20 关于#硬件工程#的问题,请各位专家解答!
- ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
- ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
- ¥30 截图中的mathematics程序转换成matlab
- ¥15 动力学代码报错,维度不匹配
- ¥15 Power query添加列问题
- ¥50 Kubernetes&Fission&Eleasticsearch
- ¥15 報錯:Person is not mapped,如何解決?
- ¥15 c++头文件不能识别CDialog