LINUX.ORG.RU

Шаблон класса


0

0

Подскажите пожалуйста, вот описываю класс:
#ifndef __KONTEINER_H__
#define __KONTEINER_H__
#include <QVector>
#include "kombi_figure.h"
template <class Kombi_figure> class Konteiner{
private:
QVector <Kombi_figure> vect;
public:
void add(Kombi_figure &);
void del(Kombi_figure &);
int locate(Kombi_figure &);
void full_out();
int col();
};
// place your code here

#endif // __KONTEINER_H__

Начинаю реализовывать методы его:
#include "konteiner.h"
void Konteiner::add(Kombi_figure &x){

}
void Konteiner::del(Kombi_figure &){

}
int Konteiner::locate(Kombi_figure &){

}
void Konteiner::full_out(){

}
int Konteiner::col(){

}

// place your code here

Он мне ругается:
src/konteiner.cpp:2: ошибка: использование ‘template<class Kombi_figure> class Konteiner’ без параметров шаблона
src/konteiner.cpp:2: предупреждение: unused parameter ‘x’
src/konteiner.cpp:5: ошибка: использование ‘template<class Kombi_figure> class Konteiner’ без параметров шаблона
src/konteiner.cpp:8: ошибка: использование ‘template<class Kombi_figure> class Konteiner’ без параметров шаблона
src/konteiner.cpp:11: ошибка: использование ‘template<class Kombi_figure> class Konteiner’ без параметров шаблона
src/konteiner.cpp:14: ошибка: использование ‘template<class Kombi_figure> class Konteiner’ без параметров шаблона

(на реализацию типо). Я не могу понять в чом косяк, что я делаю не так.

★★

Re: Шаблон класса

Реализации пиши в том же заголовочном файле. Все равно же без специализации она скомпилироваться не может.

anonymous ()

Re: Шаблон класса

шаблоны - это такой препроцессор только type-safe. шаблонные классы лежат всегда в хедерах

generatorglukoff ★★ ()
Ответ на: Re: Шаблон класса от anonymous

Re: Шаблон класса

Зачем в заголовочном классе? Это ж не тру. И я ж типо "заглушки" на методы поставил, почему бы ему не скомпилиться? Я б понял если б ругался на методы где у меня должно ретернится но не ретернится, а так на все подряд.

DDR ★★ ()

Re: Шаблон класса

> Я не могу понять в чом косяк, что я делаю не так.

Не обижайся, но ты просто не понимаешь, что такое шаблоны.

Ну или хотя бы попробуй реализовывать методы прямо в теле класса.

tailgunner ★★★★★ ()

Re: Шаблон класса

> KONTEINER

для KDE пишешь?

dilmah ★★★★★ ()
Ответ на: Re: Шаблон класса от DDR

Re: Шаблон класса

Запихал, все заработало:) всем огромное спасибо:) А если не сложно вот у меня типо тут контейнер для объектов класса Комби_фигура, а как бы выглядел в моем случае 1 контейнер для объектов двух разных фигур? Я чот попробовал в вектор 2 типа запихать , но ругается, посмотрел в ассистене и вроде понял что только 1 аргумент. Значит вектор для такого контейнера не подойдет?

DDR ★★ ()
Ответ на: Re: Шаблон класса от tailgunner

Re: Шаблон класса

>Не обижайся, но ты просто не понимаешь, что такое шаблоны.
Я не обижаюсь, я возможно не совсем четко понимаю, но представления имею небольшое, а вот с реализацией туго:(

DDR ★★ ()
Ответ на: Re: Шаблон класса от DDR

Re: Шаблон класса

>Не обижайся, но ты просто не понимаешь, что такое шаблоны.
>Я не обижаюсь, я возможно не совсем четко понимаю, но представления имею небольшое, а вот с реализацией туго:(

да пошел читать еще про шаблоны

DDR ★★ ()

Re: Шаблон класса

Почитай про экспорт шаблонов.
Вроди бы последняя жсс уже это поддерживает.

dont ()
Ответ на: Re: Шаблон класса от DDR

Re: Шаблон класса

>Запихал, все заработало:) всем огромное спасибо:) А если не сложно вот у меня типо тут контейнер для объектов класса Комби_фигура, а как бы выглядел в моем случае 1 контейнер для объектов двух разных фигур?

делаешь вектор указателей на интерфейс, общий для обоих фигур (т.е. оба класса фигур от него наследуются) - это единственный простой способ получить более-менее гетерогенный вектор в C++. остальные методы существенно сложней :)

jtootf ★★★★★ ()
Ответ на: Re: Шаблон класса от dont

Re: Шаблон класса

>Почитай про экспорт шаблонов. Вроди бы последняя жсс уже это поддерживает.

а толку?

jtootf ★★★★★ ()
Ответ на: Re: Шаблон класса от DDR

Re: Шаблон класса

>Зачем в заголовочном классе? Это ж не тру

бери любой справочник по C++ (или конкретно по шаблонам C++) и читай, почему так

jtootf ★★★★★ ()

Re: Шаблон класса

То что ты пытаешься сделать, наверняка можно сделать без использования шаблона. Например, просто использовать один базовый класс и использовать свойства полиморфизма.

smh ★★★ ()
Ответ на: Re: Шаблон класса от smh

Re: Шаблон класса

>То что ты пытаешься сделать, наверняка можно сделать без использования шаблона. Например, просто использовать один базовый класс и использовать свойства полиморфизма.

гомогенный контейнер без обобщённых типов, на одном динамическом полиморфизме? код в студию

jtootf ★★★★★ ()
Ответ на: Re: Шаблон класса от smh

Re: Шаблон класса

>То что ты пытаешься сделать, наверняка можно сделать без использования шаблона. Например, просто использовать один базовый класс и использовать свойства полиморфизма.
Я ж вроде написал, что это лаба. ТЗ лабы выложить? Или преподу попробовать залечить, что он не шарит чего хочет?

DDR ★★ ()
Ответ на: Re: Шаблон класса от jtootf

Re: Шаблон класса

>гомогенный контейнер без обобщённых типов, на одном динамическом полиморфизме? код в студию

согласен, немного двусмысленно прозвучала моя реплика. Я имею ввиду, говоря "без шаблона" то, что не нужно писать свой шаблон, а достаточн о уже существующего - вектора, а хранить в нем объекты-наследники от некоего базового класса.

smh ★★★ ()
Ответ на: Re: Шаблон класса от smh

Re: Шаблон класса

>согласен, немного двусмысленно прозвучала моя реплика. Я имею ввиду, говоря "без шаблона" то, что не нужно писать свой шаблон, а достаточн о уже существующего - вектора, а хранить в нем объекты-наследники от некоего базового класса.

ну, зачем ему класс-обёртка я не знаю, факт

jtootf ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.