C ++ - Ошибка компиляции на домашнем задании по дереву: ошибка: ожидаемый конструктор, деструктор или преобразование типов перед токеном "*" - PullRequest
1 голос
/ 17 ноября 2010

В настоящее время я пытаюсь выполнить домашнее задание и сначала пытаюсь скомпилировать свои вещи (заголовки классов в файле .h и пустые определения в файле .inl (я используюшаблонное имя)).

Я получаю эту ошибку:

error: expected constructor, destructor, or type conversion before ‘*’ token

Вот мой файл .h: http://ideone.com/dm3Bp

Вот мой файл .inl: http://ideone.com/5FBep

Я пытаюсь создать узел (называемый в этих файлах Noeud) в конце файла .inl.по-видимому, я не могу взять значение из массива данных типа E ...

Ошибка перед определением метода:

Noeud * Arbre<E>::_auxPereSym(E *tabS, int debut, int fin, E **ptr, int &card) throw (std::bad_alloc)

Я читал в другихпотоки, тип возвращаемого значения должен быть Arbre :: Noeud, потому что Noeud - это вложенная структура моего класса Arbre ... Но, к сожалению, я не могу изменить файл заголовка ...

Есть мысли?

Спасибо за ваше время и помощь.

Примечание: дайте мне знать, если перевод нужен для чего-либо, это французское домашнее задание.

1 Ответ

3 голосов
/ 17 ноября 2010

Попробуйте указать это при определении в файле .inl (а не в заголовочном файле, как вам нужно).

Тип возвращаемого значения необходимо найти в соответствующей области видимости.

КОД СОЛНЕЧНЫХ МОЗГОВ ВПЕРЕДИ

template<typename E>
typename Arbre<E>::Noeud * Arbre<E>::_auxPereSym(E *tabS, int debut, int fin, E **ptr, int &card) throw (std::bad_alloc)

EDIT2:

изменить оператор возврата в функции-члене следующим образом:

return new typename Arbre<E>::Noeud(tabS[0]);
...