首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

问一个关于派生类的基础有关问题

2012-06-13 
问一个关于派生类的基础问题看MFC自动生成的代码,派生类的方法中经常会调一下基类的方法,比如:void CTestD

问一个关于派生类的基础问题
看MFC自动生成的代码,派生类的方法中经常会调一下基类的方法,比如:
void CTestDlg::OnLButtonDown(UINT nFlags, CPoint point) 
{
// TODO: Add your message handler code here and/or call default

CDialog::OnLButtonDown(nFlags, point);//这个是表示什么意思?给详细解释一下
}


[解决办法]
因为同名的派生类会屏蔽掉基类的函数,所以用基类名称加上::来调用基类的同名函数
[解决办法]
符号 :: 作用域指定符,用来指定用的那个函数。OnLButtonDown 重名了,所以加上CDialog::

另外调用“CDialog::OnLButtonDown(nFlags, point);”的含义为:当执行完你自己写的代码后,然后在执行此句,和系统关联起来。
MFC已经把整个框架写好了,你只不过是在做“填空题”,把你要响应的事件写出来。要不然的话,你觉得就凭你只写几句代码,就能实现左键单击?
[解决办法]
没错,就是在派生类中调用基类的写好的函数,减少开发量,注释掉这句后父类实现的基本功能就不能用了,这本身就是面向对象继承的思想。
[解决办法]

探讨
看MFC自动生成的代码,派生类的方法中经常会调一下基类的方法,比如:
void CTestDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

CDialog::OnLButtonDown(nFlags, point……

热点排行