Как правильно создать наследник Template classa использующий вектор в качестве входного параметра: как только не шаманил рабочий вариант найти не смог. Использую VS17 Код (Text): template <class T1> class SORT { protected: vector <T1> *arrayData; _int64 sizeData; public: //КОНСТРУКТОР КЛАССА, инициализация вектора из байтов или двойных слов SORT(vector <T1> *arrayData) { this->arrayData = arrayData; sizeData = this->arrayData->size(); } }; //СОЗДАЕМ КЛАСС НАСЛЕДНИК template <class T1> class SORT_BUBLE : public SORT <T1>{ private: public: //наследуем конструктор класса sort SORT_BUBLE(vector <T1> *value) :SORT<T1> (*value) { } }; //Загрузка данных побайтно в вектор vector <BYTE> *fileBinaryBytes = new vector <BYTE>; //Загрузка данных по двойным словам в вектор vector <DWORD> *fileBinaryDwords = new vector <DWORD>; //Создание класса сортировки SORT<BYTE> sort(fileBinaryBytes); //Создаиние класса наследника пузырьковой сортировки ---- >>>>>НЕ РАБОТАЕТ<<<<<<< SORT_BUBLE <DWORD> sort_buble(fileBinaryDwords);
Тут ответ либо слишком простой и люди на него не хотят тратить время, либо слишком сложный что бы в этом разбираться. Пока переписываешь элементарные примеры из каких либо уроков всё отлично работает, но когда хочешь использовать объектно-ориентированное программирование для какой либо реальной задачи, сразу возникают непреодолимые препятствия.
SORT_BUBLE(vector <T1> *value) :SORT<T1> (value) Наверное, заменить *value на value SORT принимает указатель
Ну так не надо бездумно переписывать, надо хоть немного вникать. Как вам верно выше указали, ошибка довольно элементарна, и компилятор про нее явно пишет:
Вы правы, заработало, но я готов поклясться, что этот вариант я тоже пробывал. Я вообще, прежде чем создавать тему на форуме перепробывал все доступные моему воображению варианты, даже самые неадекватные и бредовые(а вдруг сработает). И этот вариант заработал только после перезагрузки компьютера. Спасибо за помощь.