⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cxx

📁 pwlib源码库
💻 CXX
字号:
#include <ptlib.h>#include <ptclib/http.h>#include <ptclib/ptts.h>#include <ptclib/pwavfile.h>#include "abstract.h"class Factory : public PProcess{  public:    Factory()    : PProcess() { }    void Main();};PCREATE_PROCESS(Factory)template <class BaseClass, class TypeClass = PString>class Display{public:  static void ConcreteTypes(const char * title)  {    cout << "\nConcrete types for " << title << ':' << endl;    typename PFactory<BaseClass, TypeClass>::KeyList_T keys = PFactory<BaseClass, TypeClass>::GetKeyList();    typename PFactory<BaseClass, TypeClass>::KeyList_T::const_iterator r;    for (r = keys.begin(); r != keys.end(); ++r)      cout << "  " << *r << endl;      cout << endl;  }  static void TestFactory()  {    typename PFactory<BaseClass, TypeClass>::KeyList_T keyList = PFactory<BaseClass, TypeClass>::GetKeyList();    unsigned i;    for (i = 0; i < keyList.size(); i++) {      for (int j = 0; j < 3; j++)      {        MyAbstractClass * c = PFactory<BaseClass, TypeClass>::CreateInstance(keyList[i]);        if (c == NULL)           cout << "Cannot instantiate class " << keyList[i] << endl;        else          cout << keyList[i] << "::Function returned \"" << c->Function() << "\", instance " << (void *)c << endl;      }    }  }};void Factory::Main(){  Display<MyAbstractClass>::ConcreteTypes("MyAbstractClass by PString");  Display<MyAbstractClass>::TestFactory();  Display<MyAbstractClass, unsigned>::ConcreteTypes("MyAbstractClass by unsigned");  Display<MyAbstractClass, unsigned>::TestFactory();  Display<PURLScheme>::ConcreteTypes("PURLScheme");  Display<PTextToSpeech>::ConcreteTypes("PTextToSpeech");  Display<PPluginModuleManager>::ConcreteTypes("PPluginModuleManager");}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -