模板类的疑惑
template<typename _Interface, const IID* _IID /*= &__uuidof(_Interface)*/>
class _com_IIID {
public:
typedef _Interface Interface;
static _Interface* GetInterfacePtr() throw()
{
return NULL;
}
static _Interface& GetInterface() throw()
{
return *GetInterfacePtr();
}
static const IID& GetIID() throw()
{
return *_IID;
}
};
当我使用_com_ptr_t<_com_IIID<MSXML2:IXMLDOMDOC2,0x0>>来定义一个模板类对象时,上面那个模板类的_IID的值怎么来的,我没看到哪里有设置,但是使用GetIID()这个函数的时候,仍然能得到IXMLDOMDOC2的IID
[解决办法]
这不是默认参数吗?
[解决办法]
到底注释掉没啊
是模板默认参数
[解决办法]
默认参数 看看注释是否注销成功
[解决办法]
- C/C++ code
_com_ptr_t<_com_IIID<MSXML2:IXMLDOMDOC2,0x0> >_com_IIID<MSXML2:IXMLDOMDOC2,0x0> //0x0就是传进去的值啊
[解决办法]
不能使用全局的指针作为模板的参数。