Ошибка конструктора: ожидается ‘{’ в конце ввода

У меня проблемы с объявлением конструктора из подкласса, суперкласс которого создан из шаблона.

Пример кода выглядит так:

template <class T>
class foo{
public:
foo();
};

typedef foo<double> foo_double;

class bar : public foo_double
{
bar() : foo_double();
};

int main(){
}

когда я компилирую, я получаю ошибку:

In constructor ‘bar::bar()’:
expected ‘{’ at end of input

Я немного растерялся здесь.

0

Решение

Список инициализации членов может использоваться только с определением конструктора. Таким образом, вы должны определить это как

bar() : foo_double() {}

И базовый класс будет создан по умолчанию, поэтому вам вообще не нужно этого делать. Просто

bar() {}
4

Другие решения

bar() : foo_double();

Не конструктор

bar() : foo_double() { }

является.

1

Вы забыли фигурные скобки { }

bar() : foo_double() { }
//     ^^^
1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector