托管 c++ 和堆栈溢出都是新手,所以我希望我做对了。
我很难找到一种方法来编写带有基类参数的函数,该参数需要派生类的类变量。
我的基类叫做 ImageBase,有两个类变量:int rows、cols;
public ref class ImageBase
{
public:
int num_rows;
int num_cols;
}
从中派生出一个名为 ImageT 的抽象模板化类,它只包含一个模板化二维数组 pix:
template<class T> public ref class ImageT abstract : public ImageBase
{
public:
property T** pix
{
public: T** get() { return rows; }
protected: void set(T** val) { rows = val; }
}
}
派生自 ImageT 的是 RealImage、ShortImage 和 ComplexImage,它们只需将模板类型“T”分别更改为 float、short 或 complex。如果这更容易理解,这是一个类结构的小 MS Paint 图:
我的问题是:如果我要编写一个非常通用的函数,例如:
void printPixels(ImageBase^ img)
这样我就可以将 RealImage、ComplexImage 等传递给它,我将如何从 ImageBase 类型访问变量“pix”?