//// Created by NJUST'er'wang's on 2022/1/15.//左移运算符重载#include<iostream>usingnamespace std;classTest{int ID;public:voidsetID(int ID){this->ID = ID;}intgetID(){return ID;}/* 成员函数返回重载运算符
* 通常不会使用成员函数重载左移运算符
* 因为不能实现cout在左侧
* */};//全局函数重载左移运算符
ostream &operator<<(ostream &cout,Test &test){
cout<<"The ID in Test is: "<<test.getID();return cout;//此处为了是"<<"运算符能链式编程}voidtest01(){
Test test;
test.setID(01);// cout<<test.getID()<<endl;
cout<<test<<endl;}intmain(){test01();return0;}/*
The ID in Test is: 1
*/
递增运算符重载
//// Created by NJUST'er'wang's on 2022/1/17.//递增运算符重载#include<iostream>usingnamespace std;classMyInteger{int num;public:MyInteger(){ num =0;}voidsetNum(int num){this->num = num;}intgetNum(){return num;}/* 重载 ++ 运算符 *///前置++
MyInteger &operator++(){//返回引用是为了能够一直对一个数据进行自增操作this->num++;return*this;}//后置++
MyInteger operator++(int){//int代表占位参数,用以区分前置和后置++//记录结果
MyInteger tmp =*this;//本身++this->num++;//返回记录的值return tmp;}};//重载左移(<<)运算符
ostream &operator<<(ostream &cout, MyInteger m){
cout <<"The num is: "<< m.getNum()<< endl;return cout;}voidtest01(){
MyInteger myInteger;
cout <<"前置++:"<<++myInteger;}voidtest02(){
MyInteger m;
cout <<"后置++:"<< m++<< endl;
cout <<"m++后:"<< m << endl;}intmain(){test01();test02();return0;}/*
前置++:The num is: 1
后置++:The num is: 0
m++后:The num is: 1
*/