Sanal Kalıtım Nedir?



Sanal kalıtım, bir üst sınıfın uygulanmasının eksik olduğu ve bir nesnenin tam tanımı için bir alt sınıfın gerekli olduğu bir kalıtım türüdür. Bu tip kalıtım hem tek hem de çoklu kalıtımla birlikte kullanılabilir, ancak en yaygın olarak çoklu kalıtımda kullanılır. Bir sanal taban sınıfından miras alan herhangi bir sınıf, bu temel sınıfın doğrudan bir alt sınıfı olur. kredi notum düşük nasıl kredi çekerimBir sanal taban sınıfı, tüm yöntemlerini uygulamak için bir alt sınıfa güvenebilir, ancak bu bir gereklilik değildir.
C ++, sanal devralmayı kullanmak için en yaygın olarak bilinen bilgisayar dilidir. C ++'da sanal devralma bildirmek için "sanal" anahtar kelime kullanılır. Hem süper sınıf hem de alt sınıf, sanal yöntemleri "sanal" anahtar kelimeyle bildirmelidir. Bu, C ++ derleyicisine süper sınıfın eksik olduğunu ve bunu tamamlamak için alt sınıftan bilgi alması gerektiğini söyler . Alt sınıfı tamamlamak için alt sınıfı kullanmak, alt sınıfların, aynı temel sınıfa sahip olmaları durumunda birbirlerinin üzerine yazdıkları anlamına gelmez; bunun yerine, C ++ derleyicisi, her nesne ile hangi parçaların gittiğini belirlemeye çalışır.
Sanal bir temel sınıf sanal devralma için gerekli olduğundan, C ++'dakiglobal işlevler sanal olarak bildirilemez. Bu kalıtım türü sadece nesne yönelimli programlama (OOP) prensiplerine bağlı kalarak kullanılabilir. Bunun nedeni, küresel işlevlerin belirli bir sınıfla ilişkilendirilmemesi ve genellikle kendi başlarına kendi kendine yeten olmasıdır. Üst sınıf ve alt sınıf kalıtımı olmazsa, küresel işlevler ve sanal devralmalar birbirini dışlar. Global işlevler, gelir belgesiz kredi veren bankalarteoride, sanal işlevlerin içinde kullanılabilir, ancak tersi her zaman işe yaramayabilir.
Sanal devralma, birçok programlama problemini çözmek için kullanılır ve en kullanışlı olanlardan biri belirsizliktir. Birden fazla kalıtımda, B ve C iki alt sınıfa sahip bir baz sınıfı A ve daha sonra B ve C sınıflarından miras alan bir D sınıfı olabilir. Bu model genellikle "ölüm pırlası" olarak adlandırılır çünkü eğer A sınıfı, B ve C'nin hepsinin aynı yöntemle uygulamaları vardır, D sınıfı için hangi uygulamayı kullanması gerektiğini belirlemek mümkün değildir. Sanal kalıtım bu problemi çözmektedir, çünkü her bir sınıfın uygulaması ayrı kalmaktadır ve bu nedenle kesin değildir. Bu ayrım, her nesne türünü takip eden sanal masalar (vtables) adı verilen özel dahili nesneler tarafından ele alınır, ancak bu tabloların bir programcı tarafından açık bir şekilde manipüle edilmesine gerek yoktur. çünkü onlar dilin içine yerleştirilmişlerdir.

Yorumlar

Bu blogdaki popüler yayınlar

Kullanıcı Alanı Nedir?

Opt-In ve Opt-Out arasındaki fark nedir?

Program Editörü nedir?