Logo bg.boatexistence.com

Как възниква двусмислието при множествено наследяване?

Съдържание:

Как възниква двусмислието при множествено наследяване?
Как възниква двусмислието при множествено наследяване?

Видео: Как възниква двусмислието при множествено наследяване?

Видео: Как възниква двусмислието при множествено наследяване?
Видео: Множествена склероза и Covid-19: интервю с акад. Иван Миланов 2024, Може
Anonim

Неяснотата, която възниква при използване на множествено наследяване, се отнася до извлечен клас, който има повече от един родителски клас, който дефинира свойство(я) и/или метод(и) със същото имеНапример, ако 'C' наследява както 'A', така и 'B' и класове 'A' и 'B', и двете дефинират свойство с име x и функция с име getx.

Каква е неяснотата при множественото наследяване?

Неяснотата идва главно в множествено наследяване Два базови класа имат функции с едно и също име, докато клас, извлечен от двата базови класа, няма функция с това име. Когато извикаме функцията с обект на извлечен клас, компилаторът не може да разбере коя от двете функции се има предвид.

Има ли някаква неяснота в концепцията за множествено наследяване?

Неяснота в наследяването може да бъде дефинирана като когато един клас е извлечен за два или повече основни класа, тогава има шансове базовите класове да имат функции със същото име. Така че ще обърка извлечения клас да избира от подобни функции за имена.

Каква неяснота възниква при множественото наследяване и как може да бъде разрешена?

Може да възникне неяснота когато съществуват няколко пътя към клас от един и същ базов клас Това означава, че дъщерният клас може да има дублиращи се набори от членове, наследени от един базов клас. Това може да бъде решено с помощта на виртуален базов клас. … Такъв базов клас е известен като виртуален базов клас.

Какво е наследяване на неяснотите Как се преодолява обяснете с пример?

Например, да предположим, че два класа с име A и B имат член с име x, а клас с име C наследява както A, така и B. Опит за достъп до x от клас C би бил двусмислен. Можете да разрешите неяснотата, като квалифицирате член с името на неговия клас, като използватеоператора за разделителна способност на обхвата (::).

Препоръчано: