Форум программистов, компьютерный форум CyberForum.ru

error C2059: синтаксическая ошибка - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.67
BigBadabum
Сообщений: n/a
19.12.2010, 13:11     error C2059: синтаксическая ошибка #1
Добрый день. Собственно, проблема вот в чем. Класс ContStack является наследником чисто виртуалього интерфейса NVICont. При компиляции в месте "Arg<T>* _p;" выдает ошибку:
error C2059: синтаксическая ошибка: <
1> g:\vronskiy_lab5_\vronskiy_lab5=(\container.h(90): см. ссылку на создание экземпляров класса шаблон при компиляции "ContStack<Arg,T>"
1>g:\vronskiy_lab5_\vronskiy_lab5=(\container.h(38) : error C2238: непредвиденные лексемы перед ";"
Идея в том, чтобы можно было создавать указатель *р на один объект типа 1 параметр, который, в свою очередь, параметризован вторым параметром. Подскажите пожалуйста, в чем ошибка, или такое сделать невозможно в принципе, ибо компилятор такого не понимает?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
template <class Arg,class T>
class NVICont
{
public:
    void show(){return doShow();}
    const T& operator[](int a) const {return ret1(a);}
    size_t& size(){return dosize();}
    bool empty(){return doempty();}
    size_t& used(){return doused();}
    void push(T& t){return dopush(t);}
    void pop(){return dopop();}
    void pushindex(T& t,int i){return dopushindex(t,i);}
    void pushfront(T& t){return dopushfront(t);}
    void popback(){return dopopback();}
 
    virtual ~NVICont(){};
private:
    virtual void doShow()=0;
    virtual const T& ret1(int) const=0;
    virtual bool doempty()=0;
    virtual size_t& doused()=0;
    virtual size_t& dosize()=0;
    virtual void dopush(T)=0;
    virtual void dopop()=0;
    virtual void dopushindex(T,int)=0;
    virtual void dopushfront(T)=0;
    virtual void dopopback()=0;
};
 
 
template <class Arg, typename T> 
class ContStack:public NVICont<Arg,T>
{
private:
        Arg<T>* _p;                                                       - вот тут выдает ошибку
    virtual bool doempty(){return *p->currempty();}
    virtual size_t& doused(){return *p->currused();}
    virtual size_t& dosize(){return *p->currsize();}
    virtual const T& ret1(int i) const {return *p->currret1();}
    virtual void dopush(T& a) {return *p->currpush();}
    virtual void dopop() {return *p->currpop();}
    virtual void doShow() {return *p->currshow();}
    virtual void dopushindex(T,int) {return *p->currpushindex();}
    virtual void dopushfront(T) {return *p->currpushfront();}
    virtual void dopopback() {return *p->currpopback();}
public:
    ContStack(size_t size=10): _p(new Arg<T>(size))
    {
    }
 
    ~ContStack()
    {
        delete  _p;
    }
    
};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2010, 13:11     error C2059: синтаксическая ошибка
Посмотрите здесь:

C++ error C2061: синтаксическая ошибка: идентификатор
C++ error C2059: syntax error : 'constant'
Error C2059 C++
Error C2059: синтаксическая ошибка: if C++
C++ Error C2059: Синтаксическая ошибка: тип
Error C2059: синтаксическая ошибка: else C++
C++ Error C2059: синтаксическая ошибка: [
Error C2760: синтаксическая ошибка / Fatal error C1004: непредвиденное обнаружение конца файла C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 19:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru