R
Ramozarti
Есть класс m1 и класс m2. m2 - наследник m1.
В m1 есть функция calc которая переопределена в классе m2;
Есть другие наследники класса m1.
Есть массив указателей на класс m1. В этом массиве записаны наследники класса m1.
Есть задача в цикле вызвать метод calc для всех классов наследиков. Как это сделать?
Но если не делать приведение типов запускается метод calc для родителького класса.
Вариант с указателем на член класса работать скорей всего не будет, т.к. все равно будет вызван метод родительского класса. Где то читал что это можно обойти но это видится сложным.
Есть ещё вариант с проверкой на тип класса и приведению к этому типу.
Вижу способ как сделать проверку - в специальной функции вернуть строку с именем класса. Но это гемморно т.к. классов будет много.
В m1 есть функция calc которая переопределена в классе m2;
Есть другие наследники класса m1.
Есть массив указателей на класс m1. В этом массиве записаны наследники класса m1.
Есть задача в цикле вызвать метод calc для всех классов наследиков. Как это сделать?
Но если не делать приведение типов запускается метод calc для родителького класса.
Вариант с указателем на член класса работать скорей всего не будет, т.к. все равно будет вызван метод родительского класса. Где то читал что это можно обойти но это видится сложным.
Есть ещё вариант с проверкой на тип класса и приведению к этому типу.
Вижу способ как сделать проверку - в специальной функции вернуть строку с именем класса. Но это гемморно т.к. классов будет много.