Шаблонный класс C++, наследовавший другой шаблонный класс с указанным шаблоном входным типом [дубликат]

8
задан Community 23 May 2017 в 12:16
поделиться

1 ответ

Потому что TestBase может быть специализирована на X, чем бы X ни стал. Поэтому вам нужно сообщить компиляции, что someInt является зависимым значением, полностью определив его.Вместо

     someInt = 0

скажите скорее

     TestBase<X>::someInt = 0

Вы также можете использовать

     this->someInt = 0

. Дело в том, что компилятор не будет предполагать, что имя зависит от параметра шаблона, он должен знать это, прежде чем отложит эту проверку до времени создания экземпляра. В качестве эксперимента посмотрите, что происходит, когда вы вводите глобальный someInt.

7
ответ дан 5 December 2019 в 21:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: