#include<iostream>
using namespace std;
class A {
public:
void f(){cout<<"A"<<endl;}
};
class B : private A {
public:
void f(){cout<<"B"<<endl;}
};
int main(){
olarak B sınıfı özel Sınıf A devralıyorsa, bu upcasting çalışmak gerekiyordu değildir:Açık türetme neden özel miras için öngörüye izin veriyor?
A* a = new B;
Ama açık tiplemeleri bunu izin veriyor. Neden?
A* a1 = (A*)new B;
a1->f();
return 0;
}
C-cast çoğu dönüşüme izin verir (int * 'den' '* 'ye bile). Kullanım beklenen çıktı ile UB olabilir. – Jarod42
Kopyala: http://stackoverflow.com/questions/17925124/can-i-cast-a-derived-class-to-a-private-base-class-c –