Это говорит vector<myStruct>
, но поскольку вы изменили myStruct
в дочернем классе, на самом деле это два разных типа, поэтому каждая из двух функций думает, что она возвращает свой тип. Это разрешено только для ковариантных типов, где тип связан с фактическим типом класса, содержащего функцию.
Обратите внимание, что вам, вероятно, все равно не следует возвращать вектор атрибута класса по значению.
Я не могу сказать, что вы на самом деле намереваетесь делать, но вложенные структуры на самом деле не должны иметь одно и то же имя, если это две разные вещи (и если они одинаковые, не переопределяйте это) , Моя первая инстинктивная реакция заключается в том, что, возможно, отношения между родителями и детьми здесь неуместны. Рассматривали ли вы другие варианты? Если вам действительно нужно вернуть другой тип в дочерний элемент, и родитель не знает об этом, то вы не можете использовать виртуальный интерфейс для этого. Вам нужно просто дать функциям разные имена, чтобы вы знали, какой должен быть тип возвращаемого значения.
С более подробной информацией о ваших целях можно получить лучший ответ.