A {
public:
static int num;
int _num;
A() {
_num = num;
}
};
B : public A {
public:
static int num;
B() {
_num = num;
}
};
int A::num = 100;
int B::num = 200;
int main() {
A *a = new A();
std::cout << "A::num = " << a->num << std::endl //100
std::cout << "a->_num = " << a->_num << std::endl //100
B *b = static_cast<B *>(a);
std::cout << "B::num = " << b->num << std::endl //200
std::cout << "b->_num = " << b->_num << std::endl //100
delete a; // 你觉的该delete a 、delete b哪个更好点(用智能指针管理时调用的是A的析构)
}