首页 > 解决方案 > 赋值运算符(+= 和 =)之间的区别

问题描述

我一直在编程 c++ 一段时间了。不过,我的问题可能仍然很幼稚。:)

+= 和 + 有什么区别。例如

std::string a = "Hi";
a += "b" + "c";

或者

std::string a = "Hi";
a = a + "b" + "c";

如果有任何区别,哪个更优化使用?哪个操作数较少?

标签: c++

解决方案


在这个特定的例子中,有一个很大的区别:a += "b" + "c";不编译,而编译a = a + "b" + "c";。前者试图添加两个指针,这在语法上是无效的。后者添加了一个std::string和一个char*指针,并且恰好有一个合适的operator+重载。


推荐阅读