⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 integer.h

📁 ThinkingC++中文版
💻 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 + -