我想用 c++/cli 编写一个包装器,以将 c++ 库与 C# 图形界面进行通信。
当我想在 c++/cli 中实现继承时出现了我的问题:想法:抽象类 B 继承自抽象类 A 类 C 继承自抽象类 B
public ref class A_Wrapper abstract
{
public:
A_Wrapper(void);
virtual double solve(OtherWrapper ^) =0;
};
public ref class B_Wrapper abstract: public A_Wrapper
{
private:
B * nativeLS;
public:
B_Wrapper(void);
virtual double solve(OtherWrapper ^) =0;
virtual B * getNative();
};
我发现的错误是: Error:'new' or 'override' is required 因为这个声明匹配函数 A:solve
如果我使用 virtualdouble solve(OtherWrapper ^) override;
而不是 usingvirtual double solve(OtherWrapper ^) =0;
并在 .cpp 文件中实现成员函数,那么它可以工作。我希望 B_Wrapper 是抽象的,这样我就不必实现B_Wrapper::solve(..)
. 我错过了什么?
希望我已经清楚了,有人可以帮助我。提前致谢。