吊爆了,奇怪的函数调用,基类调用派生类,该怎么解决
吊爆了,奇怪的函数调用,基类调用派生类
BOOL CMainFrameSend::MakeSystemSetup()
{
// 配置文件使用
char szPath[_MAX_PATH];
CHSFilePath::GetPath(szPath,Srv_Setting_File);
YlsPrompt("MakeSystemSetup-配置文件",szPath);
CYlsIni YlsIniFile;;
YlsIniFile.Open(szPath);
ReadFromIni( YlsIniFile );
Init(&YlsIniFile); //这个Init在派生类中也有
ReadFromIni_Second( YlsIniFile );
BuildStockInfo();
InitRemain();
return TRUE;
}
跟踪代码的时候,发现到了Init, 进入了 派生了CMainFrame::Init了,
怎么回事??
class CMainFrame : public CMainFrameSend
------解决方案--------------------
这不就是C++的继承多态特性吗?
------解决方案--------------------
Init(&YlsIniFile);相当于
this->Init(&YlsIniFile);
如果this确实指向派生类对象并且Init是虚函数,那么应该就是调用派生类的Init
BOOL CMainFrameSend::MakeSystemSetup()
{
// 配置文件使用
char szPath[_MAX_PATH];
CHSFilePath::GetPath(szPath,Srv_Setting_File);
YlsPrompt("MakeSystemSetup-配置文件",szPath);
CYlsIni YlsIniFile;;
YlsIniFile.Open(szPath);
ReadFromIni( YlsIniFile );
Init(&YlsIniFile); //这个Init在派生类中也有
ReadFromIni_Second( YlsIniFile );
BuildStockInfo();
InitRemain();
return TRUE;
}
跟踪代码的时候,发现到了Init, 进入了 派生了CMainFrame::Init了,
怎么回事??
class CMainFrame : public CMainFrameSend
------解决方案--------------------
这不就是C++的继承多态特性吗?
------解决方案--------------------
Init(&YlsIniFile);相当于
this->Init(&YlsIniFile);
如果this确实指向派生类对象并且Init是虚函数,那么应该就是调用派生类的Init