Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Возврат вектора методом шаблонного класса


Автор: dlis 12.5.2013, 16:29
Здрасте, как методом шаблонного класса вернуть вектор типа переданного в шаблон, в общем как скомпилить следующий код:

Код

template<class T>
class AbstractRepository
{
public:
    vector<T> getAll()=0;
    T getById(int id)=0;

    bool add(T item)=0;
    bool edit(T item)=0;
    bool remove(T item)=0;
};

Автор: borisbn 13.5.2013, 06:01
>  как скомпилить следующий код
А что, не компилируется?
Какие ошибки выдаёт?

Автор: kolesnle 13.5.2013, 08:25
Цитата(borisbn @  13.5.2013,  06:01 Найти цитируемый пост)
>  как скомпилить следующий код
А что, не компилируется?
Какие ошибки выдаёт?

Цитата

1>c:\lam\ha\ha.cpp(8): error C2143: синтаксическая ошибка: отсутствие ";" перед "<"
1>          c:\lam\ha\ha.cpp(13): см. ссылку на создание экземпляров класса шаблон при компиляции "AbstractRepository<T>"
1>c:\lam\ha\ha.cpp(8): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\lam\ha\ha.cpp(8): error C2238: непредвиденные лексемы перед ";"


Модератор: для цитирования ошибок следует использовать тег quote

Автор: borisbn 13.5.2013, 08:29
Сорри, а вы <vector> включили ? Если да, то сделали using namespace std; перед объявлением класса ? Ели да, то 1) Хз 2) Лучше using namespace std; не делать. Тем более в h-никах. И ещё: абстрактные функции д.б. виртуальными.
Короче, такой код
Код
#include <vector>
template<class T>
class AbstractRepository
{
public:
    virtual std::vector<T> getAll()=0;
    virtual T getById(int id)=0;
    virtual bool add(T item)=0;
    virtual bool edit(T item)=0;
    virtual bool remove(T item)=0;
};

должен компилироваться.
http://ideone.com/KWPS3Z

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)