Şu an Scott Meyers 'More Effective C++' i okudum. Iyi örnek olan! Öğe 2, dynamic_cast'in sadece aşağı yayınlar için değil, aynı zamanda kardeşler için de kullanılabileceğinden bahseder. Kardeşler için herhangi bir (makul) olmayan bir kullanım örneği sunabilir mi? Bu aptal testi gerektiği gibi yazdırıyor, ancak bu tür dönüşümler için herhangi bir uygulama hayal bile edemiyorum.Kardeşlerin dynamic_konu için kullanım durumu ne olurdu?
#include <iostream>
using namespace std;
class B {
public:
virtual ~B() {}
};
class D1 : public B {};
class D2 : public B {};
int main() {
B* pb = new D1;
D2* pd2 = dynamic_cast<D2*>(pb);
cout << pd2 << endl;
}
: Bir
C
nesneye birA
işaretçisi varsa, o zaman buC
nesneye birB
işaretçi alabilirsiniz'Çapraz' ara. Bir sınıf, iki farklı sınıftan miras aldığında, başka bir şekilde değil (sizin sorunuzda olduğu gibi) kullanıldığında kullanılır. –