视觉C++无法正确满足构造函数要求
Visual C++ Can't Properly fill Constructor Requirements
所以我似乎不能正确地满足这个构造函数的需求。
DIVA_STATUS DIVA_getObjectDetailsList (
IN BOOL pFirstTime,
IN time_t *initialTime,
IN int pListType,
IN int pObjectsListType,
IN int pMaxListSize,
IN DIVA_STRING pObjectName,
IN DIVA_STRING pObjectCategory
IN DIVA_STRING pMediaName
DIVA_LEVEL_OF_DETAIL pLevelOfDetail,
IN vector<DIVA_STRING> listPosition,
OUT vector<DIVA_OBJECT_DETAILS_LIST> *&pObjectDetailsList
)
问题似乎是输出类向量的最后一行(???)。我对c++有点生疏,所以我想不起来你为什么要取消引用一个引用调用(*&)。
DIVA_OBJECT_DETAILS_LIST是一个类,如下所示:
class DIVA_OBJECT_DETAILS_LIST {
public:
int listType;
DIVA_STRING siteID;
vector<DIVA_STRING> *listPosition;
vector<DIVA_OBJECT_INFO> *objectInfo;
vector<DIVA_OBJECT_TAPE_INFO> *objectTapeInfo;
};
下面是我尝试使用vc++ 2008 Express编译时得到的结果
1>Compiling...
1>initiator.cpp
1>.initiator.cpp(148) : error C2100: illegal indirection
1>.initiator.cpp(148) : error C2665: 'DIVA_getObjectDetailsList' : none of the 2 overloads could convert all the argument types
1> z:Mediavault1AutomationDIVA_APIDIVArchiveAPICppAPI TestincludeDIVAapi.h(2191): could be 'DIVA_STATUS DIVA_getObjectDetailsList(bool,time_t,int,int,int,DIVA_STRING,DIVA_STRING,DIVA_STRING,DIVA_LEVEL_OF_DETAIL,std::vector<_Ty>,DIVA_OBJECT_DETAILS_LIST *&)'
1> with
1> [
1> _Ty=DIVA_STRING
1> ]
1> while trying to match the argument list '(bool, time_t, int, int, int, DIVA_STRING, DIVA_STRING, DIVA_STRING, DIVA_LEVEL_OF_DETAIL, std::vector<_Ty>, DIVA_OBJECT_DETAILS_LIST *)'
1> with
1> [
1> _Ty=DIVA_STRING
1> ]
下面是我调用构造函数的方法:
cr = DIVA_getObjectDetailsList (
_firstTime,
(time_t)_initDate,
(int)DIVA_OBJECTS_LIST,
(int)DIVA_OBJECTS_CREATED_SINCE,
_size,
_name,
_category,
_group,
DIVA_INSTANCE,
*_listType.listPosition,
&*_listType
);
_listType是DIVA_OBJECT_DETAILS_LIST。我如何通过引用传递它的指针?
问题似乎出在倒数第二个参数上。当你应该传递一个std::vector<DIVA_STRING>
(不是指针)时,你传递了一个std::vector<DIVA_STRING>*
。
但是为了帮助你理解最后一个参数,vector<DIVA_OBJECT_DETAILS_LIST>*&
是一个"指向vector<DIVA_OBJECT_DETAILS_LIST>
的指针的引用"类型。也就是说,你应该传递一个指针,它是通过引用传递的。
相关文章:
- "error: no matching function for call to"构造函数错误
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 为什么在C++中使用私有复制构造函数与删除复制构造函数
- 选择要调用的构造函数
- 如何委托派生类使用其父构造函数?
- 构造函数正在调用一个使用当前类类型的函数
- 没有用于初始化C++中的变量模板的匹配构造函数
- 初始化具有非默认构造函数的std::数组项的更好方法
- 当从函数参数中的临时值调用复制构造函数时
- 在c++构造函数中使用随机字符串生成器
- 一对向量构造函数:初始值设定项列表与显式构造
- 从构造函数抛出异常时如何克服内存泄漏
- 我不明白为什么我声明一个空的内部结构并将其传递给构造函数
- 继承:构造函数,初始化C++11中基类的类C数组成员
- 具有默认模板类型的默认构造函数的类型推导
- 只有在结构实例的构造函数中满足条件时,才能创建该实例
- 为什么可以在构造函数中使用成员初始化来满足显式构造函数的参数?
- 视觉C++无法正确满足构造函数要求