Sanal işlevlerden ve vtables'lardan geçiyordum ve şüphem var. taban sınıfı türetilmiş sınıfın özel hale özel sonra tüm sıra üye olarak edidiğindeTemel sınıf özel olarak türetildiğinde derleyici eklenti vptr özel hale mi geliyor?
class base
{
public:
virtual void fun(){}
};
class derived : private base
{
public:
void fun(){}
};
kapsamı kuralıyla: Ben aşağıdaki gibi kod şey olduğunu varsayalım . Derleyici vptr (vtable işaretçisi) eklenir mi, türetilmiş sınıfa özel olur mu?
'vptr', sahne arkası konseptidir. “Özel” hale gelmez çünkü doğrudan ona erişemez veya düzenini bilemezsiniz. Bununla birlikte, bunun anlamı, türetilmiş bir nesneyi olan kişilerin, bir “temel * b = & nesne” olarak erişemedikleri (veya ona dönüştüremediği), çünkü derleyici özel bir miras olduğundan şikayet edecektir. – inetknght
C++ dilinde "vptr" diye bir şey yoktur (taslak standardı arayabilir ve kendiniz görebilirsiniz). Uygulamanız bu adla bir uygulama tekniğini kullanabilir (veya kullanamaz). Programa görünmez, bu yüzden özel olup olmadığını sormak mantıklı değildir. –
@SergeyA Başka birinden alıntı yaptığım veya vtable kullanımıyla ilgili detaylardan dolayı katılmıyorsunuz? –