У меня есть базовый класс и несколько производных классов. До того, как я использовал один контейнер для управления объектом, но теперь у меня может быть несколько разных типов студентов в этом случае, то есть я решил использовать указатель базового класса для его управления. Однако я не уверен, как я могу работать с объектом вне функции, которая его создала. Ниже приведено то, что я сделал раньше, чтобы управлять объектами. Есть ли что-то подобное для управления контейнерами с указателями базового класса?C++ Использование указателей базового класса вне функции
pointer = new SchoolChild[NoOfChildren];//creates pointer that free up space on memory
for (int i = 0; i < NoOfChildren; i++)
{
pointer[i].display();
}
Это просто создает массив для хранения указателей объектов SchoolChild. Измените его на базовый класс, а затем у вас будет массив базовых указателей. В другом месте вам нужно будет установить новые объекты SchoolChild и любые другие производные типы в массив базовых указателей. Это должно произойти до того, как вы попытаетесь вызвать display() для каждой записи массива, иначе он попытается вызвать метод display() в NULL. – amisam