Приведение типов
Вообще приведение типов (casting) означает, что переменная типа Р преобразуется в тип Q. Например, Р р; Q q= (Q) р. Иногда такое преобразование имеет смысл и допустимо, иногда нет. Графически наследование изображается стрелкой от подкласса к суперклассу.
Два класса на концах стрелки имеют разный тип, поэтому возможны два преобразования (приведения) типов — восходящее (англ. upcasting), по стрелке, и нисходящее (англ. downcasting), против направления стрелки.
Восходящее приведение всегда допустимо и выполняется автоматически, а нисходящее должно задаваться явно. Возможность нисходящего преобразования проверяется на этапе выполнения программы.
Читать дальше →
Вообще приведение типов (casting) означает, что переменная типа Р преобразуется в тип Q. Например, Р р; Q q= (Q) р. Иногда такое преобразование имеет смысл и допустимо, иногда нет. Графически наследование изображается стрелкой от подкласса к суперклассу.
Два класса на концах стрелки имеют разный тип, поэтому возможны два преобразования (приведения) типов — восходящее (англ. upcasting), по стрелке, и нисходящее (англ. downcasting), против направления стрелки.
Восходящее приведение всегда допустимо и выполняется автоматически, а нисходящее должно задаваться явно. Возможность нисходящего преобразования проверяется на этапе выполнения программы.
Читать дальше →