📄 integer.h
字号:
//: C12:Integer.h
// From Thinking in C++, 2nd Edition
// Available at http://www.BruceEckel.com
// (c) Bruce Eckel 2000
// Copyright notice in Copyright.txt
// Non-member overloaded operators
#ifndef INTEGER_H
#define INTEGER_H
#include <iostream>
// Non-member functions:
class Integer {
long i;
public:
Integer(long ll = 0) : i(ll) {}
// Operators that create new, modified value:
//const Integer operator+(const Integer& right);
//i1+i2+i3; error
//( i1.operator+(i2) ).operator+(i3)
//改成
//const Integer operator+(const Integer& right) const //常量成员函数
//不能随便改,因为常量成员函数只能读,不能写
friend const Integer operator+(const Integer& left, const Integer& right);
friend const Integer operator-(const Integer& left, const Integer& right);
friend const Integer operator*(const Integer& left, const Integer& right);
friend const Integer operator/(const Integer& left, const Integer& right);
friend const Integer operator%(const Integer& left, const Integer& right);
friend const Integer operator^(const Integer& left, const Integer& right);
friend const Integer operator&(const Integer& left, const Integer& right);
friend const Integer operator|(const Integer& left, const Integer& right);
friend const Integer operator<<(const Integer& left,const Integer& right);
friend const Integer operator>>(const Integer& left,const Integer& right);
// Assignments modify & return lvalue:
friend Integer& operator+=(Integer& left, const Integer& right);
friend Integer& operator-=(Integer& left, const Integer& right);
friend Integer& operator*=(Integer& left, const Integer& right);
friend Integer& operator/=(Integer& left, const Integer& right);
friend Integer& operator%=(Integer& left, const Integer& right);
friend Integer& operator^=(Integer& left, const Integer& right);
friend Integer& operator&=(Integer& left, const Integer& right);
friend Integer& operator|=(Integer& left, const Integer& right);
friend Integer& operator>>=(Integer& left,const Integer& right);
friend Integer& operator<<=(Integer& left,const Integer& right);
// Conditional operators return true/false:
friend int operator==(const Integer& left, const Integer& right);
friend int operator!=(const Integer& left, const Integer& right);
friend int operator<(const Integer& left, const Integer& right);
friend int operator>(const Integer& left, const Integer& right);
friend int operator<=(const Integer& left, const Integer& right);
friend int operator>=(const Integer& left, const Integer& right);
friend int operator&&(const Integer& left, const Integer& right);
friend int operator||(const Integer& left, const Integer& right);
// Write the contents to an ostream:
void print(std::ostream& os) const
{
os << i; }
};
#endif // INTEGER_H ///:~
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -