为什么编译失败:
std::wstring timeString();
if (sysTime->wHour < 10) timeString.append(L"hi");
但是一旦我将第一行更改为这样:
std::wstring timeString(L"some text");
有用?
std::wstring timeString();
这是一个函数声明,而不是对象声明。仔细看:函数名是timeString
不带参数的,并且返回std::wstring
。
写吧:
std::wstring timeString;
这应该足够了。
只有你更喜欢 C++11 的统一初始化语法,你才能避免这样的意外错误:
std::wstring timeString { L"some text" }; //object!
std::wstring timeString { }; //object, not function declaration!
希望有帮助。
代替:
std::wstring timeString();
和:
std::wstring timeString;