Անորոշությունը, որն առաջանում է բազմակի ժառանգության օգտագործման ժամանակ, վերաբերում է ստացված դասին, որն ունի մեկից ավելի ծնող դաս, որը սահմանում է հատկություն[ներ] և/կամ մեթոդ[ներ] նույն անունով։Օրինակ, եթե «C»-ն ժառանգում է «A»-ից և «B»-ից և «A» և «B» դասերից, երկուսն էլ սահմանում են x անունով հատկություն և getx անունով ֆունկցիա:
Ի՞նչ է անորոշությունը բազմակի ժառանգության մեջ:
Անորոշությունը հիմնականում գալիս է բազմակի ժառանգություն Երկու բազային դասեր ունեն նույն անունով ֆունկցիաներ, մինչդեռ երկու բազային դասերից ստացված դասը չունի այս անունով գործառույթ: Երբ մենք ֆունկցիան կանչում ենք ստացված դասի օբյեկտով, ապա կոմպիլյատորը չի կարողանում պարզել, թե երկու ֆունկցիաներից որն է նկատի ունեցել:
Կա՞ որևէ երկիմաստության հնարավորություն բազմակի ժառանգության հայեցակարգում:
Անորոշությունը ժառանգության մեջ կարող է սահմանվել որպես այն դեպքում, երբ մեկ դասը ստացվում է երկու կամ ավելի բազային դասերի համար, ապա հավանականություն կա, որ բազային դասերն ունենան նույն անունով ֆունկցիաներ: Այսպիսով, այն կշփոթի ստացված դասը` ընտրելով նմանատիպ անունների գործառույթներից:
Ի՞նչ երկիմաստություն է առաջանում բազմակի ժառանգության մեջ և ինչպե՞ս կարող է այն լուծվել:
Անհստակություն կարող է առաջանալ երբ մի քանի ուղիներ կան դեպի դաս միևնույն բազային դասից Սա նշանակում է, որ երեխա դասը կարող է ունենալ մեկ բազային դասից ժառանգված անդամների կրկնօրինակ հավաքածուներ: Սա կարելի է լուծել՝ օգտագործելով վիրտուալ բազային դաս: … Նման բազային դասը հայտնի է որպես վիրտուալ բազային դաս:
Ի՞նչ է երկիմաստությունը ժառանգականությունը Ինչպե՞ս եք հաղթահարում, բացատրեք օրինակով:
Օրինակ, ենթադրենք, որ A և B անուններով երկու դասերը երկուսն էլ ունեն x անունով անդամ, իսկ C անունով դասը ժառանգում է և՛ A, և՛ B:C դասից x մուտք գործելու փորձը երկիմաստ կլինի: Դուք կարող եք լուծել անորոշությունը՝ որակավորելով անդամին իր դասի անունով՝ օգտագործելովշրջանակի լուծաչափը (::) օպերատորը: