использованный компилятор: VS2010
Базовый класс: родительский класс
Производный класс: Child0 Class
Экземпляр и вызов: MainFrame (класс Child0)
class parent /*parent Class*/
{
public: /*Base Func*/
virtual void OnAutoEntry();
virtual void OnInitParam(){};
virtual void OnInitSequence(){};
virtual void OnRunSequence(){};
private:/*Private Call Func*/
void OnSeqInitPartFunc();
void OnSeqStartDoneFunc();
}
void parent::OnAutoEntry() //doesn't understand function action
{
// How did the parent class know the child function and called it?
OnInitParam();
OnSeqInitPartFunc();
OnSeqStartDoneFunc();
}
class child0 : public parent
{
void OnAutoEntry(); //propose : overridding
void OnInitParam(); //propose : overridding
void OnInitSequence(); //propose : overridding
void OnRunSequence(); //propose : overridding
}
создать переопределяющую функцию в классе child0.
void child0::OnInitParam()
{AfxMessageBox(_T("Child :: OnInitParam() Called By Parent"));}
OnInitSequence, OnRunSequence - это то же самое.
Я вызываю эту функцию на мейнфрейме
void child0::OnAutoEntry()
{parent::OnAutoEntry(); //call parent function}
Мой ожидаемый результат: неактивен. Нет печатного сообщения.
Но в результате получается, что сообщение напечатано.