Правильный ли это метод использования отношений базовых и производных классов? - PullRequest
0 голосов
/ 09 апреля 2019

использованный компилятор: 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}

Мой ожидаемый результат: неактивен. Нет печатного сообщения.

Но в результате получается, что сообщение напечатано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...