Наследовать чисто виртуальную функцию, которая бросает

Как следует из названия, я хотел бы сделать унаследованную функцию класса из функции класса, которая выдает исключение. Функция в базовом классе выглядит следующим образом:

template <typename T>
class IQueue {
public:
virtual T dequeue()throw(…) = 0;
}

Обратите внимание, что мне не разрешено изменять это, так как это для класса. Как я должен объявить функцию в переадресованном классе? Я пытался так:

template <typename T>
class Queue : public IQueue < T >{
public:
virtual T dequeue()throw(…) {}
}

Но мне не разрешено его запускать, и это дает мне ошибку, которая указывает на объявление в базовом классе. Так что я думаю, что я не переопределяю это, как я должен.

Вот ошибки, которые я получаю:

unexpected token(s) preceding ';'
syntax error : indentifier '...'
unable to recover from previous error(s); stopping compilation".

и два вверху находятся в IQueue.h, а последний в xlocale. Я использую Visual Studio 2013.

1 ответ

Ваша проблема связана с использованием Unicode HORIZONTAL ELLIPSIS вместо ..., Однако даже throw(...) не компилируется в моей системе. Класс также пропускает точку с запятой в конце своего объявления, хотя не ясно, была ли это просто ошибка при загрузке в переполнение стека.

Вы упомянули, что скопировали класс из описания назначения. Что бы это ни было скопировано, это неправильно форматирует текст, и это должен исправить профессор / тот, кто управляет заданиями.

Кроме того, в общем, использование спецификаций исключений считается плохой идеей в C++.

Другие вопросы по тегам