我有一个类头文件,如下所示:
TString.h
namespace Utils
{
class UTILS_API TString
{
public:
TString(const TString& tstr);
TString(LPCTSTR tstr = NULL, int len = -1);
TString(LPCSTR str, int len = -1);
..........................
}
给出错误:错误C2548:' Utils :: TString :: TString' :缺少参数2的默认参数
我想,我可以在头文件中指定默认值,这是正确的;那么为什么会出现这个错误?
如何清除此错误?
答案 0 :(得分:4)
LPCTSTR
是一个const TCHAR
字符串。 TCHAR
可以是char
或wchar_t
。
LPCSTR
是一个const char
字符串。
因此,如果TCHAR
被解析为char
,则LPCTSTR
和LPCSTR
属于同一类型,现在您有两个具有完全相同类型但默认值不同的函数不允许的参数