C ++ wstring构造函数

时间:2013-08-11 12:36:26

标签: c++ wstring

为什么无法编译:

std::wstring timeString();
if (sysTime->wHour < 10) timeString.append(L"hi");

但是,一旦我将第一行改为这样:

std::wstring timeString(L"some text");

有效吗?

2 个答案:

答案 0 :(得分:5)

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!

希望有所帮助。

答案 1 :(得分:1)

替换:

std::wstring timeString();

使用:

std::wstring timeString;