如何理解此“ int运算符-(int值)”和程序中的输出?

彼得·张

(Visual Studio 2012)

#include <iostream>
using namespace std;
class Bar
{
public:
    int operator-(int value)
    {
        return 5;
    }
};

int main()
{
    Bar bar;
    cout<<"First: "<<bar-10<<endl;
    cin.ignore(100,'\n');
    return 0;
}

两个问题:

  1. 在课堂上,有一个重载的for-符号,只要正确的值是整数,它就会返回5,对吗?

  2. 在输出部分cout<<"Second: "<<bar-10<<endl;,如果之前没有对象-10,它将输出-10; 如果将对象放在那里,它将输出5,为什么?物体bar扮演什么角色?

谢尔盖·卡里尼琴科(Sergey Kalinichenko)
  1. 在课堂上,“-”符号有一个重载,只要the rightvalue是一个整数,它将返回5,对吗?

是的。运算符-的重载方式是从中减去任何整数都会Bar产生的固定值5

  1. 在输出部分,cout<<"Second: "<<bar-10<<endl;如果之前没有对象-10,它将输出-10; 如果将对象放在那里,它将输出5为什么?对象bar扮演什么角色?

如果删除bar,破折号将成为十进制前的一元负运算符,并将其变为负十进制。那就是打印出来的东西。

bar那里时,破折号被解释为二进制减法运算,带有bar其左侧操作数和10右侧运算符。由于Bar类提供了覆盖,因此这是C ++调用产生5的答案。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Int32如何使运算符重载?

来自分类Dev

如何在C ++中重载<<<用于向量<int>的运算符

来自分类Dev

如何理解Modelica模型中的Instream运算符?

来自分类Dev

运算符重载失败,运算符[]并将运算符强制转换为int

来自分类Dev

如何在C ++中覆盖此虚拟运算符?

来自分类Dev

此R代码中的%>%或%。%运算符

来自分类Dev

如何为包含int向量的果断定义更少的运算符

来自分类Dev

我如何重载赋值运算符,以允许我的类等于诸如“ int”之类的原始类型

来自分类Dev

int是否有运算符==

来自分类Dev

C ++运算符重载int类型

来自分类Dev

Int类型类的运算符重载

来自分类Dev

如何使 & 命令运算符的输出无效?

来自分类Dev

F#,此值不是函数和+运算符

来自分类Dev

理解 R 中的“和”和等于运算符

来自分类Dev

C ++中int和char的重载运算符

来自分类Dev

'|'如何 运算符在R中工作?

来自分类Dev

<:<运算符在Scala中如何工作?

来自分类Dev

如何:运算符在Javascript中工作

来自分类Dev

如何使用!Scala中的运算符?

来自分类Dev

如何:运算符在Javascript中工作

来自分类Dev

OR运算符在SQL中如何工作?

来自分类Dev

如何重载in中的运算符?

来自分类Dev

python2中int()对象如何在不使用__eq __()方法的情况下使用“ ==”运算符?

来自分类Dev

继承中的此运算符和私有变量

来自分类Dev

PHP中的三元运算符和比较运算符如何工作?

来自分类Dev

运算符[]和运算符int()的模棱两可的重载

来自分类Dev

如何使用正则表达式在字符串中的“比较运算符”之后提取值,并在python中查找值是object / str还是int / float?

来自分类Dev

如何使用dict理解和三元运算符在Python中创建新的dict

来自分类Dev

如何防止来自'&'和'>'运算符的输出(发送给后台运算符和重定向运算符)

Related 相关文章

  1. 1

    Int32如何使运算符重载?

  2. 2

    如何在C ++中重载<<<用于向量<int>的运算符

  3. 3

    如何理解Modelica模型中的Instream运算符?

  4. 4

    运算符重载失败,运算符[]并将运算符强制转换为int

  5. 5

    如何在C ++中覆盖此虚拟运算符?

  6. 6

    此R代码中的%>%或%。%运算符

  7. 7

    如何为包含int向量的果断定义更少的运算符

  8. 8

    我如何重载赋值运算符,以允许我的类等于诸如“ int”之类的原始类型

  9. 9

    int是否有运算符==

  10. 10

    C ++运算符重载int类型

  11. 11

    Int类型类的运算符重载

  12. 12

    如何使 & 命令运算符的输出无效?

  13. 13

    F#,此值不是函数和+运算符

  14. 14

    理解 R 中的“和”和等于运算符

  15. 15

    C ++中int和char的重载运算符

  16. 16

    '|'如何 运算符在R中工作?

  17. 17

    <:<运算符在Scala中如何工作?

  18. 18

    如何:运算符在Javascript中工作

  19. 19

    如何使用!Scala中的运算符?

  20. 20

    如何:运算符在Javascript中工作

  21. 21

    OR运算符在SQL中如何工作?

  22. 22

    如何重载in中的运算符?

  23. 23

    python2中int()对象如何在不使用__eq __()方法的情况下使用“ ==”运算符?

  24. 24

    继承中的此运算符和私有变量

  25. 25

    PHP中的三元运算符和比较运算符如何工作?

  26. 26

    运算符[]和运算符int()的模棱两可的重载

  27. 27

    如何使用正则表达式在字符串中的“比较运算符”之后提取值,并在python中查找值是object / str还是int / float?

  28. 28

    如何使用dict理解和三元运算符在Python中创建新的dict

  29. 29

    如何防止来自'&'和'>'运算符的输出(发送给后台运算符和重定向运算符)

热门标签

归档