This mode utilizes callback function technology.
Command. h
# Pragma once
# Include <qdebug>
Class ccommand
{
Public:
Virtual void execute () = 0;
};
Class creceiver
{
Public:
Void action ()
{
Qdebug () <"Action fact! ";
}
};
Class concreatecommand: Public ccommand
{
Public:
Concreatecommand (creceiver * rev): m_rev (REV ){}
~ Concreatecommand () {Delete m_rev ;}
Void execute ();
PRIVATE:
Creceiver * m_rev;
};
Class cinvoke
{
Public:
Cinvoke (ccommand * command): m_command (command ){}
~ Cinvoke () {Delete m_command ;}
Void invoke ();
PRIVATE:
Ccommand * m_command;
};
Command. cpp
# Include "command. H"
Void concreatecommand: Execute ()
{
M_rev-> action ();
}
Void cinvoke: invoke ()
{
M_command-> execute ();
}
Main. cpp
# Include <qapplication>
# Include "command. H"
Int main (INT argc, char ** argv)
{
Qapplication app (argc, argv );
Creceiver * REV = new creceiver;
Ccommand * command = new concreatecommand (REV );
Cinvoke * inv = new cinvoke (command );
Inv-> invoke ();
Delete inv;
Return app.exe C ();
}