是否可以在C++/CLR在C#中声明的抽象类?
假设我有一个C#项目,它定义了以下抽象类:是否可以在C++/CLR在C#中声明的抽象类?,c#,c++,clr,C#,C++,Clr,假设我有一个C#项目,它定义了以下抽象类: public abstract class MyAbstractClass { public abstract void DoIt(string param); } 然后我可以在C++/CLR中实现它吗 public ref class MyDerivedClass : public MyAbstractClass { public: void DoIt(String^ param) {
public abstract class MyAbstractClass
{
public abstract void DoIt(string param);
}
然后我可以在C++/CLR中实现它吗
public ref class MyDerivedClass : public MyAbstractClass
{
public:
void DoIt(String^ param)
{
}
};
如果答案是
否,您不能这样做
,是否可以使用接口来执行此操作?C++/CLI编译器不接受处理其他语言的语法和表达语法。因此,为了让C代码与它们一起工作,需要进行代码转换。这种转换产生符号(即导出的函数、类、数据等),它们可以从自己的编译器中编译,这些编译器可以被输入到C++中。要构建这样的符号,还需要考虑目标平台或机器。有几种工具和库可以帮助人们弥合语言之间的鸿沟。然而,在系统(Windows、Mac、Linux等)之间移植生成的资源将不会像人们希望的那样顺利,特别是当原始代码库非常大时 是的,C++/CLI托管类型可以从C#类继承并实现C#接口,包括重载虚拟方法。这就是通用类型系统的全部要点
如果它对您不起作用,即使在仔细注意编译器错误之后,也可以问一个新问题,显示失败的特定代码和确切的编译器错误消息。您肯定不是指
void
。不止一种返回类型不合法。@BenVoigt当然不合法,谢谢!