#include <cstdlib> #include <iostream> #include <memory> using namespace std; class base { public: virtual void run(){} } ; class dev1 : public base { public: void run(){cout<<"dev1"<<endl;} }; class dev2 : public base { public: void run(){cout<<"dev2"<<endl;} }; class manger { public: manger(int a) { if(a == 1) ptr.reset(new dev1()); else ptr.reset(new dev2()); } void run(){return ptr->run();} private: auto_ptr<base> ptr; }; int main(int argc, char *argv[]) { manger m(1); m.run(); system("PAUSE"); return EXIT_SUCCESS; } 这个可以在游戏开发中是用到 dev c++编程