我有一个如下的类头文件:

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

我认为,我可以在头文件中分配默认值,这是正确的;那为什么显示这个错误呢?

如何清除此错误?

最佳答案

LPCTSTRconst TCHAR字符串。 TCHAR可以是charwchar_t
LPCSTRconst char字符串。

因此,如果将TCHAR解析为char,则LPCTSTRLPCSTR是相同的类型,现在您有两个函数,它们的类型完全相同,但默认参数不同,这是不允许的

关于c++ - 重新定义默认参数:参数2,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36264938/

10-12 06:08