是否可以在C++/CLR中实现一个用C#声明的抽象类
Is it possible to implement in C++/CLR an abstract class declared in C#?
假设我有一个C#项目,它定义了以下抽象类:
public abstract class MyAbstractClass
{
public abstract void DoIt(string param);
}
然后我可以在C++/CLR中将其实现为吗
public ref class MyDerivedClass : public MyAbstractClass
{
public:
void DoIt(String^ param)
{
}
};
如果答案是NO, You can't do that
,是否可以通过接口来实现?
是的,C++/CLI托管类型可以从C#类继承并实现C#接口,包括重载虚拟方法。这就是普通类型系统的全部意义。
如果它对你不起作用,即使在仔细注意编译器错误之后,也可以问一个新问题,显示失败的特定代码和确切的编译器错误消息。
C++/CLI编译器不接受处理其他语言的语法和表达语法。因此,为了让C#代码与它们一起工作,需要代码转换。这种转换产生从自己的编译器编译的符号(即导出的函数、类、数据等),这些符号可以输入到C++的编译器中。为了构建这样的符号,还考虑了目标平台或机器。有几种工具和库可以帮助人们弥合语言之间的差距。然而,在系统之间移植生成的资源(Windows与Mac与Linux等)并不像人们希望的那样顺利,尤其是当原始代码库的大小相当大时。
相关文章:
- 如何处理从一个对象传递到另一个在C++中具有公共抽象类的对象的消息
- C ++如何在原始抽象类中创建一个函数,该函数接受派生类的输入
- 从抽象类继承以创建另一个抽象类时,我应该重新声明所有虚函数吗?
- 两个抽象类,派生自同一个基类.如何访问从一个抽象类到另一个抽象类的指针
- 如何使用其中一个具体类实例化抽象类?
- 如何将抽象类的可访问性限制为另一个抽象类及其子类?
- 错误 - 变量类型 "X" 是一个抽象类 - c++
- 创建一个抽象类类型的集合,shared_ptr的抽象类向量
- 从另一个抽象类得出一个抽象类时,C 中的类重新定义错误
- 为什么gcc和clang允许我构造一个抽象类
- 如何重写调用另一个抽象类的抽象类的虚拟函数
- 用类似Java的c++实例化一个抽象类
- 在CPP中创建一个抽象类而不是基类会给我带来什么好处
- 在C++中,一个抽象类可以在没有纯虚拟函数的情况下实现吗
- c++中关于闭包的另一个抽象类问题
- VS c++编译器会错过一个抽象类的实例化吗?
- 在QML插件中注册一个C++抽象类,并从QML中引用它
- 实现一个抽象类
- 是否有可能编写一个抽象类,其中构造函数选择适当的子类在c++中实例化
- 我需要一个抽象类的.cpp文件吗