关于重载函数参数匹配的问题
本来想发到C++区,不过这个问题是和 VS2003 + Windows SDK 有点关系,所以就发这里了
我的IDE环境设置:
工具->选项->Visual C++ 目录,下拉选项: 可执行文件 的设置
Microsoft Windows SDK v6.1 的 C:\Program Files\Microsoft SDKs\Windows\v6.1\Bin 在最上头
我用到了某网友的ADO封装类 CADORecordset
里面有
BOOL CADORecordset::Open(LPCTSTR, int)
BOOL CADORecordset::Open(ADODB::_ConnectionPtr, LPCTSTR, int)
两个重载
调用时代码为:
CString strSQL;
// ...
recordset.Open(strSQL);
结果编译出错:
error C2668: “CADORecordset::Open” : 对重载函数的调用不明确
c:\CMediumManagementServer\ADO\ado2.h(363): 可能是“BOOL CADORecordset::Open(LPCTSTR,int)”
c:\CMediumManagementServer\ADO\ado2.h(362): 或 “BOOL CADORecordset::Open(ADODB::_ConnectionPtr,LPCTSTR,int)”
试图匹配参数列表“(CString)”时
我很纳闷,不管怎么匹配,一个2参数,一个3参数,怎么会不明确?,而且第二个函数的第一个参数是_ConnectionPtr类型,我怎么想,也不明白,为什么会 “不明确”。
有谁知道吗?