Я использую класс в библиотеке, что мы будем называть LibraryClass<BaseClass>
где LibraryClass<>
наследует от своего шаблона, как так:«Override» конструктор и вызвать прародитель конструктор
template<class BaseClass>
class LibraryClass
:
public BaseClass
{
...
Этот класс делает именно то, что я хочу, однако в конструкторе есть ошибка. Я пытаюсь создать производный класс следующим образом:
template<class BaseClass>
class MyClass
:
public LibraryClass<BaseClass>
{
...
, а затем просто добавить новый конструктор. Однако в конструкторе MyClass() мне нужно вызвать конструктор BaseClass(), который не является прямым родителем. Как указано выше, я не хочу вызывать LibraryClass(), поскольку у него есть ошибка.
Как создать новый класс с помощью только нового конструктора?
Предположим, вы можете обойти конструктор родителя. Что обеспечило бы, чтобы родительский подобъект находился в работоспособном состоянии (если он не был инициализирован)? – NPE
Вы можете попытаться создать «обход» конструктора внутри 'LibraryClass' - и заставить его вызывать, т. Е. По определенным аргументам. –
Несомненно, это самый новый подход к исправлению ошибок, который я видел за многие годы ;-) –