gpt4 book ai didi

c++ - 应该如何理解这个 "int operator-(int value)"和这个程序中的输出?

转载 作者:太空宇宙 更新时间:2023-11-04 13:08:27 26 4
gpt4 key购买 nike

( 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. 在类中,- 有一个重载符号,只要右边的值是整数,就会返回5 ,我说得对吗?

  2. 在输出部分cout<<"Second: "<<bar-10<<endl; , 如果 -10 之前没有对象, 它会输出 -10 ;如果一个对象放在那里,它会输出 5 , 为什么?对象bar起什么作用?玩?

最佳答案

  1. In class, there is an overloaded for "-" sign, as long as ther rightvalue is an integer, it will return 5, am I right?

是的。接线员-以从 Bar 中减去任何整数的方式重载产生一个固定值 5 .

  1. In the output part cout<<"Second: "<<bar-10<<endl; if there is not an object before -10, it will output -10; if an object is put there, it will outputs 5. Why? What role does the object bar play?

如果删除 bar , dash 变成十前面的一元减号运算符,变成负十。这就是打印的内容。

bar在那里,破折号被解释为二进制减法运算,带有bar它的左侧操作数,以及 10它的右侧运算符。自 Bar类提供了一个重写,这是 C++ 调用以生成 5 的内容作为答案。

关于c++ - 应该如何理解这个 "int operator-(int value)"和这个程序中的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41065195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com