【发布时间】:2013-05-15 15:00:31
【问题描述】:
我想知道如何将头文件中的 COM 智能指针定义为类成员?这是做了什么:
-
在 .cpp 文件中,我有:
long MyClass:MyFun(long &deviceCount) { RESULT h = CoInitialize(NULL); MyComPtr ptr(__uuidof(MyComClass)); if(deviceCount > 0) ptr->Connect(); }
但是由于其他函数需要用到ptr,所以我正在考虑将其改为类成员,并在头文件中定义,如下所示:
-
在 .h 文件中:
MyComPtr _ptr; -
然后在 .cpp 文件中,我有:
_ptr(__uuidof(MyComClass));
但是编译没有通过,它说“术语不评估为带 1 个参数的函数”。我很困惑如何实现这一点。有任何想法吗?谢谢。
编辑:所以要使用初始化列表,它应该是这样的吗?
MyClass:MyClass() : _ptr(new MyCom)
{
_ptr(__uuidof(MyComClass));
}
【问题讨论】:
-
你熟悉术语“初始化列表”吗?
-
@WhozCraig:不,我不是,但我想学习?
标签: c++ com header-files smart-pointers class-members