E
expect
Unregistered / Unconfirmed
GUEST, unregistred user!
class base {
virsual void sub() {}
};
class derived ublic base {
void sub() {}
void foo() {}
};
main() {
base * b =new derived
//1
b->sub()
//2
b->foo()
//3
(derived *)b->foo()
//4
};
请问:
步骤1:中 base和derived在内存中的表现形式是怎样的?
(有人说:derived 紧跟在base 的后面,b 指向base头部)
步骤2:中 c++是如何实现的,调用的是 derive::sub,而不是
base::sub。
步骤3:中 c++是如何判断foo不存在的。
步骤4:中 b是否发生过变化。
virsual void sub() {}
};
class derived ublic base {
void sub() {}
void foo() {}
};
main() {
base * b =new derived
//1
b->sub()
//2
b->foo()
//3
(derived *)b->foo()
//4
};
请问:
步骤1:中 base和derived在内存中的表现形式是怎样的?
(有人说:derived 紧跟在base 的后面,b 指向base头部)
步骤2:中 c++是如何实现的,调用的是 derive::sub,而不是
base::sub。
步骤3:中 c++是如何判断foo不存在的。
步骤4:中 b是否发生过变化。