Я пытаюсь реализовать виртуальную функцию, которая находится в файле .h в моем .cpp-файле. Это для назначения, поэтому я не могу просто сделать функцию не виртуальной. Это функция клонирования, которая вызывает конструктор копирования класса. Функция:Функция клонирования в C++
virtual Item* clone() const;
в классе
Ingredient : public Item {
Когда я реализую это в моем файле Ingredient.cpp, у меня есть:
Ingredient::clone() const {
return new Ingredient (*this);
}
Но когда я пытаюсь скомпилировать, я получить эти две ошибки:
Ingredient.cpp: 23: 13: error: C++ требует спецификатора типа для всех объявлений
Ingredient::clone() const {
^
Ingredient.cpp: 24: 9: ошибка: не удается инициализировать обратный объект типа 'INT' с RValue типа 'Ингредиент *'
return new Ingredient (*this);
^~~~~~~~~~~~~~~~~~~~~~~~
2 ошибок, генерируемых.
Я не понимаю, что я здесь делаю неправильно, потому что я должен использовать разыменованный * этот указатель. Какие-либо предложения?
Отсутствует тип возвращаемого значения в сигнатуре функции .. http://ideone.com/J0U8wv – Brandon