c++ - 赋值运算符(+= 和 =)之间的区别
问题描述
我一直在编程 c++ 一段时间了。不过,我的问题可能仍然很幼稚。:)
+= 和 + 有什么区别。例如
std::string a = "Hi";
a += "b" + "c";
或者
std::string a = "Hi";
a = a + "b" + "c";
如果有任何区别,哪个更优化使用?哪个操作数较少?
解决方案
在这个特定的例子中,有一个很大的区别:a += "b" + "c";
不编译,而编译a = a + "b" + "c";
。前者试图添加两个指针,这在语法上是无效的。后者添加了一个std::string
和一个char*
指针,并且恰好有一个合适的operator+
重载。
推荐阅读
- c++ - 使按值传递的参数成为常量有什么意义?
- apache-spark - 如何在 spark-jdbc 应用程序中给出表名以读取 RDBMS 数据库上的数据?
- python - 使用 python 将字符串和浮点数写入 ASCII 文件
- powershell - 如何一次删除多个项目?
- javascript - 我怎样才能从表单内的元素中序列化 id?
- c++ - 基类中哪个派生类对象调用了非虚函数
- .net-core - .net core api 中的异步方法
- angular - 如何在Angular 6的通用组件中获取参数值
- c# - 是否可以创建一个 Excel-COM 可见类库以在 MAC OSX 中使用?
- phpstorm - 我在哪里可以找到 PhpStorm 中的数据库工具窗口?