问个问题,在mfc中如:CButton *pbutton = (CButton*)GetDlgItem(nID),将CWnd* 强制转换为CButton*时,pButton为什么可以调用CButton独有的成员函数?
解决方案
40
无关继承你用空指针也能调用成员函数,你可以查查thiscall
全部函数没有内联的话,最终调用形式是一样的,只是写代码的方式和用途不一样
[code=c][/struct A {
int a ;
} ;
struct B :public A {
void func () {
std::cout << “this == 0x” << this << std::endl ;
}
} ;
int main () {
((B *) 0)->func () ;
return 0 ;
}code]
全部函数没有内联的话,最终调用形式是一样的,只是写代码的方式和用途不一样
[code=c][/struct A {
int a ;
} ;
struct B :public A {
void func () {
std::cout << “this == 0x” << this << std::endl ;
}
} ;
int main () {
((B *) 0)->func () ;
return 0 ;
}code]