#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 (){
由于Class B私有继承Class A,因此这种向上转型不应该起作用:
A* a = new B;
但是显式类型转换是允许的。 为什么呢?
A* a1 = (A*)new B;
a1->f();
return 0;
}
int*
到A*
)。然后使用可能会导致未定义行为,输出也可能不符合预期。 - Jarod42