Почему этот код шаблона C++ не компилирует?

Я решил проблему, делающую это:

01 * * * * cd /home/user/folder && /usr/bin/python 1.py
6
задан Screndib 1 September 2009 в 21:55
поделиться

1 ответ

В то время, когда шаблонный класс Base создается как родительский для класса Derived, класс Derived не является полным типом.

Поскольку Base > является родительским классом для Derived , он должен быть создан до того, как Derived может быть создан. Поэтому, когда класс Base > создается из шаблона, Derived ведет себя так, как если бы это было предварительное объявление. И, как вы, вероятно, знаете, вы не можете ссылаться на члены неполных типов, а также не можете напрямую объявлять вложенные типы, так что вам здесь не повезло.

Это, кстати, вот почему так сложно реализовать правильно ковариантный метод clone () с использованием шаблонов.

12
ответ дан 9 December 2019 в 20:46
поделиться
Другие вопросы по тегам:

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