((daemon * p))->draw(1, 1, 1, 1);
Бұл əрқашан мүмкін бола бермейді, өйткені əртүрлі уақыт мезетінде
нұсқауыш иерархияның əртүрлі кластарының объектілеріне сілтеме жасауы
мүмкін жəне программаның компиляциясы кезінде нақты класс белгісіз болуы
мүмкін. Мысал ретінде параметрі базалық класс объектісіне нұсқауыш болып
табылатын функцияны келтіруге болады. Программаның орындалуы кезінде
оның орнына кез келген туынды класқа нұсқауыш берілуі мүмкін. Басқа мы-
сал – иерархияның əртүрлі объектілеріне нұсқауыштардың байланысқан
тізімі, бұл тізіммен бір сипатта жұмыс істеу керек.
Ерте байланыстырумен қатар, C++ тілінде кейінгі байланыстыру механизмі
жүзеге асырылған, мұнда əдіске сілтемелер жасауға рұқсат беру əдісті
шақырған объектінің нақты типіне байланысты программаның атқырылу
кезеңінде орындалады. Бұл механизм виртуалды əдістер көмегімен жүзеге
асырылған, ол келесі бөлімде қарастырылады.
Виртуалды əдісті анықтау үшін
virtual
спецификаторы қолданылады,
мысалы:
Достарыңызбен бөлісу: |