Sınıf hiyerarşisine sahip olduğumuzu söylüyor. En altta ve üstte türetilmiştir. Temel sınıf göstericisine dönüştürülse bile nesne sınıfı nasıl belirlenir.C++'da çalışma zamanında gerçek nesne türü nasıl belirlenir;
Base* b = new Derived():
typeid(b).name(); // i want this to tell me that this is actually derived not base object
Dize alanı veya bu tür ve sanal alma işlevlerinin el ile uygulanması dışında herhangi bir yolu var mı?
Not: Bana, temel sınıf en az bir sanal yöntem olduğundan emin olun derleyici bağımsız çözüm
Bu cevapta açıklandığı gibi mümkündür, ancak bu hemen hemen her zaman yanlış bir şeydir. Burada ne elde etmeye çalışıyorsun? –
Hiçbir şey tam olarak sadece bunu tartışmanın amacı için değil :) – user1079475
Daha çok uygulamaya yönelik sürüm: http://stackoverflow.com/questions/351845/finding-the-type-of-an-object-in-c || Mirastan bahsetmeyen daha genel bir sürüm: http://stackoverflow.com/questions/11310898/how-do-i-get-the-type-of-a-variable –