class В{};
class С: public В{};
С с;
В *bp = static_cast(c); // Туынды -> базалық
В b;
С &ср = static_cast(b); // Базалық -> туынды
Түрлендіру компиляция барысында жүзеге асырылады, бұл кезде
объектілер полиморфты болмауы да мүмкін. Программалаушы түрлендірілген
шамалармен одан əрі жұмыс істеу мүмкіндігін өзі қадағалауы тиіс.
Жалпы жағдайда иерархияның туыстас кластарының нұсқауыштарын
түрлендіру үшін
dynamic_cast
операциясын қолданған жөн. Мұндайда,
егер түрлендіруді компиляция кезеңінде жүргізу мүмкін болса,
static_cast
үшін генерацияланған кодпен бірдей код туындайды. Соны-
мен қатар,
dynamic_cast
қиылысқан түрлендіру мен виртуалды базалық
кластың төмендететін түрлендірілуін жүзеге асыра алады жəне түрлендірудің
орындалу мүмкіндігін оның атқарылу кезінде тексереді.
Достарыңызбен бөлісу: |