重新定义默认参数:参数2

时间:2016-03-28 14:59:03

标签: c++ visual-c++

我有一个类头文件,如下所示:

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的默认参数

我想,我可以在头文件中指定默认值,这是正确的;那么为什么会出现这个错误?

如何清除此错误?

1 个答案:

答案 0 :(得分:4)

LPCTSTR是一个const TCHAR字符串。 TCHAR可以是charwchar_t

LPCSTR是一个const char字符串。

因此,如果TCHAR被解析为char,则LPCTSTRLPCSTR属于同一类型,现在您有两个具有完全相同类型但默认值不同的函数不允许的参数