std :: string s =(std :: string)"a"+"b"+"c"; 好?

Mar*_*ark 4 c++

它有效,没有崩溃.可以吗?

编辑:我问的原因是std::string s = "a" + "b" + "c";产生编译器错误,并(std::string)"a"告诉编译器,"只是假定一个"指向的是一个std :: string".我实际上并不知道如何实现std :: string.

感谢大家的反馈.

Oli*_*rth 6

是. +是左关联的,所以它相当于((std::string)"a" + "b") + "c". std::string::operator+重载以取一个const char *参数.


Bil*_*nch 5

是.没关系.

这大致等同于做

std::string s = "a";
s += "b";
s += "c";
Run Code Online (Sandbox Code Playgroud)