其他分享
首页 > 其他分享> > C wstring构造函数

C wstring构造函数

作者:互联网

为什么这不能编译:

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!

希望有所帮助.

标签:c,wstring
来源: https://codeday.me/bug/20190825/1720190.html