Code Bye

关于父类转子类的问题

问个问题,在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]

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于父类转子类的问题