LINUX.ORG.RU

История изменений

Исправление alysnix, (текущая версия) :

Мне нужно сделать конструкцию типа:

Parent p;
Child c;
c = p;

это семантически неверная конструкция. это все равно что присвоить переменной типа Кошки(наследник класса Животное) актуальное значение Мышки(например).

Это нарушение типизации, зачем это вам НУЖНО, непонятно совершенно. Это противоречит здравой логике. Отцы не присваиваются детям, поскольку дети есть более специальный класс(содержит доп. поля и методы).

Если вам надо построить класс потомок по предку, то это делается конструктором. ну или какой-то функцией с хорошо читаемым именем, поскольку сама операция довольно специфична.

Исходная версия alysnix, :

Мне нужно сделать конструкцию типа:

Parent p;
Child c;
c = p;

это семантически неверная конструкция. это все равно что присвоить переменной типа Кошки(наследник класса Животное) актуальное значение Мышки(например).

Это нарушение типизации, зачем это вам НУЖНО, непонятно совершенно. Это противоречит здравой логике. Отцы не присваиваются детям, поскольку дети есть более специальный класс(содержит доп. поля и методы).

Если вам надо построить класс потомок по предку, то это делается конструктором.