赋值运算符之间的差(+=和=)
Difference between assignments operator (+= and =)
我已经为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+
过载。
相关文章:
- 重载Singly Linked List中的赋值运算符
- 使用赋值运算符重载从类中返回jobject
- 标准库类型的赋值运算符的引用限定符
- 复制构造函数、赋值运算符C++
- 标准::变体的赋值运算符
- 移动赋值运算符;尝试引用已删除的函数.我该如何解决这个问题?
- 基类和派生类的多态赋值运算符
- 为用户定义的类正确调用复制构造函数/赋值运算符
- CRTP 中的复制赋值运算符 - gcc vs clang 和 msvc
- 为什么初始化时没有调用重载赋值运算符?
- 赋值运算符重载和自赋值
- C++矢量复制构造函数和赋值运算符是否也复制保留空间?
- Qt PL/SQL - 赋值运算符 - 字符串缓冲区太小
- 对 r 值使用移动赋值运算符时的异常
- 由于没有使用赋值运算符,映射的值是如何初始化的?
- 赋值运算符之间的差(+=和=)
- 为什么赋值运算符和相等运算符之间没有 1:1 的关系?
- 移动赋值运算符和移动构造函数之间的区别
- 复制构造函数和赋值运算符之间的区别
- 复制构造函数和赋值运算符之间的区别