Инициализация структуры, которая наследуется от абстрактной структуры, с помощью фигурных скобок [закрыто]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Инициализация структуры, которая наследуется от абстрактной структуры, с помощью фигурных скобок [закрыто]

Сообщение Anonymous »

В настоящее время я работаю над существующей базой кода и столкнулся со следующей проблемой:
Мне хотелось сделать две отдельные структуры, наследующие одну абстрактную структуру. Однако эти две структуры уже часто используются внутри этой кодовой базы, и все они инициализируются с использованием конструктора фигурных скобок (извините, но я не знаю точной терминологии).
Проблема в том, что, очевидно, структуры которые наследуются от абстрактной структуры, не могут быть инициализированы с помощью этих фигурных скобок.
Вот пример моей проблемы:
замечу, что заголовок недоступен для предварительного просмотра с точки зрения как это будет выглядеть в опубликованном вопросе. Всегда можно скопировать и вставить заголовок и вставить его в самый верх (или низ) тела перед публикацией, чтобы убедиться, что он отображается правильно, а если необходимо внести изменения в заголовок, отредактировать. Затем перед отправкой

Код: Выделить всё

struct AbstractParent {
int a;

virtual void foo();
};

struct Child {
int b;

void foo() {}
};
Позже, если я попытаюсь инициализировать «Дочернюю» структуру, следующее не сработает:

Код: Выделить всё

Child thing = {1, 2};
Несколько странно то, что если «AbstractParent» на самом деле не был абстрактным, то есть не имел виртуальных функций, то приведенная выше инициализация работает нормально. Я предполагаю, что эта инициализация каким-то образом пытается создать объект «AbstractParent», что, очевидно, не работает.
Я пытался заменить все инициализации соответствующими конструкторами, но На самом деле я не закончил замену всех вхождений этих инициализаций вызовами конструктора, так как я не очень хорошо разбираюсь в RegEx, поэтому, должно быть, я случайно что-то напутал, так как код перестал работать.
Если есть способ инициализировать эти структуры с помощью фигурных скобок, я хотел бы знать. В противном случае мне придется попробовать добавить все конструкторы вручную, но это выглядит как лишняя работа.


Подробнее здесь: https://stackoverflow.com/questions/786 ... ly-bracket
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»