Единственная возможность будет для Class_B
фактически наследоваться от
Class_A
; в этом случае конструктор для Class_A
будет вызван
из самого производного класса. Но так как это также предполагает изменение
генератор кода или вход в генератор кода, вы можете как
хорошо измените его, чтобы добавить дополнительный конструктор к Class_B
.
Если вы действительно не можете изменить генератор кода или его ввод таким образом, чтобы
приведет к созданию дополнительного конструктора, но вы можете
измените Class_A
и Class_C
, тогда есть два возможных решения:
Самый простой - просто использовать отложенную инициализацию; добавить функцию в
Class_A
, который принимает соответствующие параметры и выполняет
инициализация после завершения конструктора. Пока самое простое,
этот метод может быть использован только если
Class_A
может быть сделан для поддержки по умолчанию
строительство, и если все члены
Class_A
поддерживают
присваивание с семантикой, такой, чтобы следовала конструкция по умолчанию
по присваиванию имеет тот же результат, что и конструкция с использованием аргументов
Вы даете (то есть, нет референтных членов, нет не подлежащих обложению членов, нет
const
членов и т. Д.).
В качестве альтернативы, вы можете поставить все функции (или, по крайней мере,
члены данных)
Class_A
в отдельном классе и имеют
Class_A
производные от этого класса практически.
Class_C
вызовет
Конструктор этого нового класса.