Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在C++/CLR在C#中声明的抽象类?_C#_C++_Clr - Fatal编程技术网

是否可以在C++/CLR在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) {

假设我有一个C#项目,它定义了以下抽象类:

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当然不合法,谢谢!