новый как для управляемого C++, так и для переполнения стека, поэтому я надеюсь, что я сделаю это правильно.Ссылка на параметр производного класса из базового класса
Мне сложно найти способ написать функцию с параметром базового класса, для которой требуется переменная класса производного класса.
Мой базовый класс называется ImageBase и имеет две переменные класса: int rows, cols;
public ref class ImageBase
{
public:
int num_rows;
int num_cols;
}
производный от этого является абстрактным, шаблонный класс называется ImageT, что только содержит шаблонный 2-D массив, пикс:
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, которые просто изменить тип шаблона «Т» для плавающего, короткого или сложного соответственно. Вот немного MS Paint диаграмма структуры класса, если это легче понять:
Мой вопрос: если бы я писал очень общую функцию, как:
void printPixels(ImageBase^ img)
так что я могу передать ему RealImage, ComplexImage и т. д., как мне получить доступ к переменной «pix» из типа ImageBase?
После попытки столкнуться с dynamic_casts я, наконец, просто успел проверить тип img, а затем сделать обычный актерский состав. EX: Тип^t = img-> GetType() if (t == Изображение :: typeid) \t \t Изображение^newImage = (изображение ^) img; Спасибо за ответ. – Sooji