我很难弄清楚如何使父类函数在C#中可见。
假设我有一个模板类,它定义了一个函数foo()
template <int Dim, typename Type>
public ref class FixedNP
{
public:
float foo() {return 1;};
};
然后我有了一个从FixedNP模板继承的类:
public ref class Vector3fP : public FixedNP<3, float>
{
}
例如,当我尝试从C#调用foo()函数时>
Vector3fP bar = new Vector3fP(); bar.foo();
它说函数Vector3fP不包含foo的定义。
当我将foo()的定义移到Vector3fP类时,它可以正常工作。但是,这在实际代码中不可行,因为FixedNP模板包含很多功能,这些功能应该从大约4个不同的类中继承。
在Internet上进行一些搜索后,我发现添加了
using FixedNP<3, float>::foo;
Vector3fP为某人解决了类似的问题。但是就我而言,这只是导致另一个错误,这次是在编译C ++ / CLI代码时:
错误C3182:'Vector3fP':成员using-声明或访问声明在托管类型中是非法的
关于如何使我的函数在C#中可见的任何建议?
我很难弄清楚如何使父类函数在C#中可见。假设我有一个模板类,它定义了一个函数foo()template