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了,

怎么回事??

推荐图书

  • C++ Primer中文版(第4版)
  • More Effective C++:35个改善编程与设计的有效方法(中文版)
  • 设计模式:可复用面向对象软件的基础


1个回答

Init(&YlsIniFile);相当于

this->Init(&YlsIniFile); 

如果this确实指向派生类对象并且Init是虚函数,那么应该就是调用派生类的Init