我正在查看一些类,并且已经在c ++中找到了有关以下内容的代码 重载运算符。我知道<<和>>表示移位,但在这种情况下返回值为1。我不明白&运算符的作用,我知道它的意思是“和”,但是没有任何if语句。
#include <iostream>
using namespace std;
class Integer
{
public:
int value;
Integer(int val) : value(val) {}
int operator ()(int start,int end);
};
int Integer::operator ()(int start,int end)
{
return (value >> start) & ((1 << (end - start)) - 1);
}
int main()
{
Integer n1(122);
int res = n1(1,3);
std::cout << n1.value << std::endl;
}