classThread_sync;classCritical;classInfo;classInfo{info (std::stringstr): M_info (str) {}Private: std::stringM_info;};//a process need: {pre-run (); run ();p Ost-run (); Mutex for threads, running Previlledge}#defineAppl_declare_app (Yourappclass)classYourappclass: PublicApplication { Public: Yourappclass (intargcConst Char*argv[]): Application (argc, argv) {}; Virtual intMain (intargc, Argvtype argv); };//provide a main () Runtine#defineAppl_define_main (Yourappclass)intMain (intargcConst Char*argv[]) {a yourappclass Theapp (argc, argv); return(Theapp.run ()); }classapplication{ Public: Virtual~application (); intRun () {if(Startup () && Main (ARGC,ARGV) && Shutdown ()) {return true;}return false;) StaticApplication &Theapp (); BOOLSetprocesspriority (intPriority );protected: Application (intargcConst Char*argv[]); Virtual intStartup (); Virtual intMain (intargcChar* * argv) {return 1; } Virtual intShutdown ();Private: Critical*M_pguard; Info* M_INFO;intm_priority; intM_ARGC;Char**m_argv; StaticApplication *pinstance;};
Object Oriented Programming:class Application