(转)运算符号重载

转载 2011年01月20日 10:28:00

// chongzai.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"


#include<iostream>
#include<vector>
using namespace std;

class test{
public:
 int v;
 /*构造函数*/
 test():v(0){}
 test(const int &a):v(a){}
 test(const test &t1):v(t1.v){}

 /*以下重载小于号 < */
 //比较两个对象的大小
 bool operator<(const test &t1) const{
  return (v < t1.v);
 }
 //比较对象和int的大小
 bool operator<(const int &t1) const{
  return (v < t1);
 }
 //友元函数,比较int和对象的大小
 friend inline bool operator<(const int &a, const test & t1){
  return (a < t1.v);
 }

 /*以下重载赋值号 = */
 //对象间赋值
 test & operator=(const test &t1){
  v = t1.v;
  return *this;
 }
 //int赋值给对象
 test & operator=(const int &t1){
  v = t1;
  return *this;
 }

 /*以下重载加号 + */
 //对象加上 int
 test operator+(const int & a){
  test t1;
  t1.v = v + a;
  return t1;
 }
 //对象加对象
 test operator+(test &t1){
  test t2;
  t2.v = v + t1.v;
  return t2;
 }

 /*以下重载加等号 += */ 
 //对象加上对象
 test &operator+=(const test &t1){
  v += t1.v;
  return *this;
 } 
 //对象加上int
 test &operator+=(const int &a){
  v += a;
  return *this;
 }

 /*以下重载双等号 == */ 
 //对象==对象
 bool operator==(const test &t1)const{
  return (v == t1.v);
 } 
 //对象==int
 bool operator==(const int &t1)const{
  return (v == t1);
 } 

 /*以下重载 输入>> 输出<< */
 /*友元函数,输出对象*/
 friend inline ostream & operator << (ostream & os, test &t1){
  cout << "class t(" << t1.v << ")" << endl;
  return os;
 }
 /*友元函数,输入对象*/
 friend inline istream & operator >> (istream & is, test &t1){
  cin >> t1.v;
  return is;
 }
};

int main(){
 test t0, t1(3);
 test t2(t1);
 cout << t0 << t1 << t2;
 cin >> t1;
 t2 = t1;
 t2 += t1;
 t1 += 10;
 cout << t2;
 if(t1 < t2) cout << "t1 < t2";
 else if(t1 == t2) cout << "t1 = t2";
 else /* t1 > t2*/ cout << "t1 > t2";
 cout <<endl;
 system("pause");
 return 0;
}

c++运算符重载,输出符号重载

运算符重载
  • u012332679
  • u012332679
  • 2015年08月03日 23:27
  • 942

C++运算符号重载

一、为什么要在运算符返回值上
  • zhliu1991
  • zhliu1991
  • 2014年04月26日 16:29
  • 301

符号重载

运算符重载时要遵循以下规则: (1) 除了类属关系运算符"."、成员指针运算符".*"、作用域运算符"::"、sizeof运算符和三目运算符"?:"以外,C++中的所有运算符都可以重载。   (...
  • HBI_flight
  • HBI_flight
  • 2016年04月25日 20:06
  • 368

c++ 符号重载

C++ 运算符号重载 前言   多态性是面向对象程序设计的重要特征之一。它与前面讲过的封装性和继承性构成了面向对象程序设计的三大特征。这三大特征是相互关联的。封装性是基础,继承性是关键,...
  • xuezhongfenfei
  • xuezhongfenfei
  • 2014年01月25日 09:13
  • 7956

Qt中C++运算符重载

参考资料 [1]c++运算符重载总结
  • Q1302182594
  • Q1302182594
  • 2015年06月22日 20:47
  • 2515

c++超基础:操作符重载下(重载符号:=、[]、==、!=)示例

#include using namespace std; /******************************************************************...
  • CodeHeng
  • CodeHeng
  • 2015年01月05日 22:18
  • 853

C++之运算法重载详解

c++的一大特性就是重载(overload),通过重载可以把功能相似的几个函数合为一个,使得程序更加简洁、高效。在c++中不止函数可以重载,运算符也可以重载。由于一般数据类型间的运算符没有重载的必要,...
  • lwb102063
  • lwb102063
  • 2016年07月08日 19:37
  • 656

java运算符重载

在C++中,经常会运用到运算符的重载,
  • w1104014017
  • w1104014017
  • 2014年06月18日 15:31
  • 6870

运算符号重载注意点

 //二元运算符的参数之一必须是包含类型//参数有一个必须是所在类//-======================================================using Syst...
  • JustLovePro
  • JustLovePro
  • 2008年01月29日 15:44
  • 674

c++流符号重载例子

#include #include //分数的加减乘除 //重载元素符+ -  * / class Yls{ public:     Yls(){         fenzi=0...
  • u012661091
  • u012661091
  • 2014年02月05日 19:46
  • 463
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:(转)运算符号重载
举报原因:
原因补充:

(最多只允许输入30个字)