Ошибка в объявлении метода класс шаблона из вне. В чем суть?
От: Zh0rzh  
Дата: 06.10.04 22:54
Оценка:
template <class Data> class gosha_list {
    class Node {
        ...


    };

Node *pbeg, *pend;

public:
    
    Node* find(Data dt);
};

template<class Data> Node * gosha_list<Data>::find(Data dt) {

...

    return pv;
}


Компилятор выдает ошибку

error C2143: syntax error : missing ';' before '*'
на строчку

template<class Data> Node * gosha_list<Data>::find(Data dt) {


Складывается впечатление, что он не видит Node как тип. Я прав?

Компилятор MS Visual C++.
Re: Ошибка в объявлении метода класс шаблона из вне. В чем с
От: Peregrin  
Дата: 06.10.04 23:05
Оценка:
Здравствуйте, Zh0rzh, Вы писали:

.....
Z>Складывается впечатление, что он не видит Node как тип. Я прав?
.....

Конечно не видит — он же внутри gosha_list. Надо делать так:

template<class Data> gosha_list<Data>::Node * gosha_list<Data>::find(Data dt) {
Re[2]: Ошибка в объявлении метода класс шаблона из вне. В че
От: Peregrin  
Дата: 06.10.04 23:10
Оценка: 3 (1)
Прошу прощения за второе сообщение — забыл вначале, а редактировать нельзя. В зависимости от компилятора (MS Visual C++ бывает разный) может быть прийдется еще добавить typename:

template<class Data> typename gosha_list<Data>::Node * gosha_list<Data>::find(Data dt) {
Re[3]: Ошибка в объявлении метода класс шаблона из вне. В че
От: Zh0rzh  
Дата: 06.10.04 23:17
Оценка:
Здравствуйте, Peregrin, Вы писали:

P>Прошу прощения за второе сообщение — забыл вначале, а редактировать нельзя. В зависимости от компилятора (MS Visual C++ бывает разный) может быть прийдется еще добавить typename:


P>
P>template<class Data> typename gosha_list<Data>::Node * gosha_list<Data>::find(Data dt) {
P>


именно typename gosha_list<Data>:: и не хватало

Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.