<< 运算符的这些重载有什么区别

克罗米

所以我想澄清一下重载打印运算符 <<

现在这就是我学会的方法:

1) ostream& 运算符<<(ostream& os, const Vector& v1)

在这个例子中,我们有一些包含 3 个整数的 Vector 类。

我看到有人尝试这样做:

2) ostream& 运算符<<(ostream& os, Vector& v1)

所以区别在于 v1 只是一个引用而不是一个常量引用。然后编译器无法打印任何不是左值的 Vector 对象,例如,他还重载了 * 运算符,以便能够执行诸如 v1 * 2、简单向量乘以标量之类的操作。例如 :

std::cout << v1 << std::end - 这有效(v1 是一个向量)std::cout << v1 * 2 << std::end - 这不起作用

但是,当我们将签名更改为按值时:

3) ostream& operator<<(ostream& os, Vector v1)

他的印刷品能够工作……我想知道为什么这一切会发生?

为什么编译器无法识别 v1 * 2 的重载 (2) 但为什么按值将其发送到 (3) 确实有效

扬斯

v1 * 2 将返回一个临时对象,不能使用第二个重载,因为非常量左值引用不绑定到临时对象。

第三个重载用于复制由 v1 * 2

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JS:在此示例中,这些三元运算符有什么区别

来自分类Dev

多态和重载有什么区别?

来自分类Dev

:=和=运算符有什么区别?

来自分类Dev

!=和<>运算符有什么区别?

来自分类Dev

逻辑AND运算符与嵌套的if语句有什么区别?

来自分类Dev

Comparable和运算符compareTo有什么区别?

来自分类Dev

:=和=运算符有什么区别?

来自分类Dev

vhdl +运算符和+函数有什么区别?

来自分类Dev

Autohotkey::= 和 = 赋值运算符有什么区别

来自分类Dev

逻辑或运算符与短路或运算符有什么区别?

来自分类Dev

ggplot2中的“ +”运算符与magrittr中的“%>%”运算符有什么区别?

来自分类Dev

r编程语言中的'/'运算符和“%/%”运算符有什么区别?

来自分类Dev

逗号运算符和逗号分隔符有什么区别?

来自分类Dev

C ++数组运算符和*(array + index)(如果有)有什么区别?

来自分类Dev

JavaScript中+运算符和concat()方法有什么区别

来自分类Dev

Angular 2:ngIf指令中比较运算符==和===之间有什么区别

来自分类Dev

可变顺序/边与关系运算符有什么区别?

来自分类Dev

>运算符和Set-Content cmdlet有什么区别

来自分类Dev

rxjs 5中的发布和多播运算符有什么区别?

来自分类Dev

不实现和删除通用运算符有什么区别?

来自分类Dev

使用“ +”运算符进行推送有什么区别吗?

来自分类Dev

显式原子加载/存储与常规operator =和运算符T有什么区别?

来自分类Dev

python中两个赋值运算符有什么区别?

来自分类Dev

fdefiniton和CL中的函数(特殊运算符)有什么区别?

来自分类Dev

Haskell点运算符:究竟有什么区别?

来自分类Dev

LR(1)语法和运算符优先级语法有什么区别?

来自分类Dev

相等运算符和deepEquals in go有什么区别?

来自分类Dev

多维数据集,汇总和groupBy运算符有什么区别?

来自分类Dev

在性能方面,UNION和CONCATENATION运算符有什么区别?

Related 相关文章

  1. 1

    JS:在此示例中,这些三元运算符有什么区别

  2. 2

    多态和重载有什么区别?

  3. 3

    :=和=运算符有什么区别?

  4. 4

    !=和<>运算符有什么区别?

  5. 5

    逻辑AND运算符与嵌套的if语句有什么区别?

  6. 6

    Comparable和运算符compareTo有什么区别?

  7. 7

    :=和=运算符有什么区别?

  8. 8

    vhdl +运算符和+函数有什么区别?

  9. 9

    Autohotkey::= 和 = 赋值运算符有什么区别

  10. 10

    逻辑或运算符与短路或运算符有什么区别?

  11. 11

    ggplot2中的“ +”运算符与magrittr中的“%>%”运算符有什么区别?

  12. 12

    r编程语言中的'/'运算符和“%/%”运算符有什么区别?

  13. 13

    逗号运算符和逗号分隔符有什么区别?

  14. 14

    C ++数组运算符和*(array + index)(如果有)有什么区别?

  15. 15

    JavaScript中+运算符和concat()方法有什么区别

  16. 16

    Angular 2:ngIf指令中比较运算符==和===之间有什么区别

  17. 17

    可变顺序/边与关系运算符有什么区别?

  18. 18

    >运算符和Set-Content cmdlet有什么区别

  19. 19

    rxjs 5中的发布和多播运算符有什么区别?

  20. 20

    不实现和删除通用运算符有什么区别?

  21. 21

    使用“ +”运算符进行推送有什么区别吗?

  22. 22

    显式原子加载/存储与常规operator =和运算符T有什么区别?

  23. 23

    python中两个赋值运算符有什么区别?

  24. 24

    fdefiniton和CL中的函数(特殊运算符)有什么区别?

  25. 25

    Haskell点运算符:究竟有什么区别?

  26. 26

    LR(1)语法和运算符优先级语法有什么区别?

  27. 27

    相等运算符和deepEquals in go有什么区别?

  28. 28

    多维数据集,汇总和groupBy运算符有什么区别?

  29. 29

    在性能方面,UNION和CONCATENATION运算符有什么区别?

热门标签

归档