Chinaunix
标题:
C++模板类问题,诚心求教!
[打印本页]
作者:
dpxiong19
时间:
2013-09-16 20:27
标题:
C++模板类问题,诚心求教!
本帖最后由 dpxiong19 于 2013-09-16 20:29 编辑
typedef PIOPlugin (*plgIOPluginCreate_Def)();
template <class T>
class TLibraryBase
{
public:
TLibraryBase() { Handle = NULL; } // Default constructor.
TLibraryBase(const string &FileName) { Load(FileName); } // Load constructor.
~TLibraryBase() { if (Handle != NULL) Unload(); } // Destructor.
void Load(const string &FileName);
void Unload();
string LibName() { return LibFileName; }
T plgCreate;
private:
TPluginHandle Handle;
string LibFileName;
};
template class TLibraryBase<plgIOPluginCreate_Def>;
typedef TLibraryBase<plgIOPluginCreate_Def> TIOLibrary;
复制代码
第一行的typedef PIOPlugin (*plgIOPluginCreate_Def)();中的(*plgIOPluginCreate_Def)()是值什么意思呢?我想请问这时TlibraryBase类中的T指的是plgIOPluginCreate_Def,这是什么类型呢,还有类中的“T plgCreate;”,其中plgCreate是什么类型的呢,是指函数么?小弟才浅,请各位大神不吝赐教,谢谢!
作者:
linux_c_py_php
时间:
2013-09-16 21:45
本帖最后由 linux_c_py_php 于 2013-09-16 21:45 编辑
template class TLibraryBase<plgIOPluginCreate_Def>; 这句是模板显式实例化, 可以达到分离模板类定义和模板类实现的目的.
typedef TLibraryBase<plgIOPluginCreate_Def> TIOLibrary; 这是起一个别名.
作者:
pprpg
时间:
2013-09-17 17:28
plgIOPluginCreate_Def 是函数类型。
如:
PIOPlugin a1();
PIOPlugin a2();
函数a1,a2都是plgIOPluginCreate_Def类型.
作者:
weiai028
时间:
2013-09-17 18:28
点不懂,完全忘记了
作者:
myworkstation
时间:
2013-09-17 18:37
回复
1#
dpxiong19
typedef PIOPlugin (*plgIOPluginCreate_Def)();定义了一个函数指针类型,plgCreate是个函数指针。
作者:
MWSandy
时间:
2013-09-20 02:23
定义函数指针类型
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2