Если у меня есть базовый класс Book и я создаю массив указателей Book, как я могу динамически создать экземпляр Nonfiction или Fiction (оба производных класса) в моем указателе Book? Я добавил, что я пытаюсь сделать, но не уверен, каков правильный синтаксис для чего-то подобного.
Book* v; v = new Book[10] v[2] = new Fiction
Вы не создаете массив из Book указателей, вы создаете массив из 10 Book объектов. Чтобы создать массив указателей, вы хотите
Book
Book **v = new Book*[10]; v[2] = new Fiction;
Firstable, в c ++, я рекомендую максимально использовать умные указатели. Также мне нравятся векторы STL.
В вашем случае я бы сделал что-то подобное:
std::vector<std::shared_ptr<Book>> books(10, nullptr); books[2] = std::make_shared<Fiction>();