为什么这不能编译:
std::wstring timeString();
if (sysTime->wHour < 10) timeString.append(L"hi");
Run Code Online (Sandbox Code Playgroud)
但是,一旦我改变第一行是这样的:
std::wstring timeString(L"some text");
Run Code Online (Sandbox Code Playgroud)
有用?
std::wstring timeString();
Run Code Online (Sandbox Code Playgroud)
这是一个函数声明,而不是对象声明.仔细看看:函数名称timeString不带参数,然后返回std::wstring.
写吧:
std::wstring timeString;
Run Code Online (Sandbox Code Playgroud)
那应该够了.
只有您更喜欢C++ 11的统一初始化语法,才能避免这种意外错误:
std::wstring timeString { L"some text" }; //object!
std::wstring timeString { }; //object, not function declaration!
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.
| 归档时间: |
|
| 查看次数: |
3883 次 |
| 最近记录: |