我有一个如下的类头文件:
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的默认参数
我认为,我可以在头文件中分配默认值,这是正确的;那为什么显示这个错误呢?
如何清除此错误?
最佳答案
LPCTSTR
是const TCHAR
字符串。 TCHAR
可以是char
或wchar_t
。LPCSTR
是const char
字符串。
因此,如果将TCHAR
解析为char
,则LPCTSTR
和LPCSTR
是相同的类型,现在您有两个函数,它们的类型完全相同,但默认参数不同,这是不允许的
关于c++ - 重新定义默认参数:参数2,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36264938/