我有两个不同的样本:
std::string* to_return = new std::string("I love" + _name + " so much!");
和:
std::string* to_return = new std::string("I love" + "Martin" + " so much!");
第一个示例说明了在尝试添加另一个名为"_name"的简单字符串对象时的初始化.在secons示例中,我只连接三个不同的字符串...
尝试制作第二个样本时出现错误:
表达式必须具有整数或未整合的枚举类型
Bathsheba.. 6
"I love" + _name + " so much!"
求值为a,std::string
因为该类包含双方的重载+
运算符const char*
,并且_name
是一个std::string
实例.
但是编译器不能使用任何重载的+
,"I love" + "Martin" + " so much!"
因为这些只是无效的const char[]
build -int 文字+
,因此编译失败.
std::string() + "I love" + "Martin" + " so much!"
,但是会工作,因为诉诸C风格的编译时连接:
std::string("I love" "Martin" " so much!");
最后,如果之后有空间,马丁可能会更加欣赏这个信息"love"
.
"I love" + _name + " so much!"
求值为a,std::string
因为该类包含双方的重载+
运算符const char*
,并且_name
是一个std::string
实例.
但是编译器不能使用任何重载的+
,"I love" + "Martin" + " so much!"
因为这些只是无效的const char[]
build -int 文字+
,因此编译失败.
std::string() + "I love" + "Martin" + " so much!"
,但是会工作,因为诉诸C风格的编译时连接:
std::string("I love" "Martin" " so much!");
最后,如果之后有空间,马丁可能会更加欣赏这个信息"love"
.