![幾個典型運(yùn)算符重載(C++)(四)_第1頁](http://file4.renrendoc.com/view/bcec81861ee3a382ac49f81158798ef2/bcec81861ee3a382ac49f81158798ef21.gif)
![幾個典型運(yùn)算符重載(C++)(四)_第2頁](http://file4.renrendoc.com/view/bcec81861ee3a382ac49f81158798ef2/bcec81861ee3a382ac49f81158798ef22.gif)
![幾個典型運(yùn)算符重載(C++)(四)_第3頁](http://file4.renrendoc.com/view/bcec81861ee3a382ac49f81158798ef2/bcec81861ee3a382ac49f81158798ef23.gif)
![幾個典型運(yùn)算符重載(C++)(四)_第4頁](http://file4.renrendoc.com/view/bcec81861ee3a382ac49f81158798ef2/bcec81861ee3a382ac49f81158798ef24.gif)
![幾個典型運(yùn)算符重載(C++)(四)_第5頁](http://file4.renrendoc.com/view/bcec81861ee3a382ac49f81158798ef2/bcec81861ee3a382ac49f81158798ef25.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
7.3幾個典型運(yùn)算符重載2023/1/131編輯課件7.3幾個典型運(yùn)算符重載數(shù)學(xué)類中常用的幾個運(yùn)算重載的特點(diǎn)和應(yīng)用
6.3幾個典型運(yùn)算符重載2023/1/132編輯課件7.3.1重載++
與--
設(shè) AAobject;運(yùn)算符++和--有兩種方式:前置方式:
++Aobject --Aobject后置方式:
Aobject
++ Aobject--成員函數(shù)
重載 A::Aoperator++();
解釋為: Aobject.operator++();
友員函數(shù)
重載 friendAoperator++(A&);
解釋為: operator++(Aobject);
成員函數(shù)
重載 A::Aoperator++(int);
解釋為: Aobject.operator++(0);
友員函數(shù)
重載: friendAoperator++(A&,int);
解釋為: operator++(Aobject,0)偽參數(shù)6.3.1重載++與--2023/1/133編輯課件成員函數(shù)重載++#include<iostream.h>classIncrease{public:Increase(){value=0;}voiddisplay()const{cout<<value<<'\n';};Increaseoperator++(); //前置
Increaseoperator++(int); //后置
private:unsignedvalue;};IncreaseIncrease::operator++() {value++;return*this;} IncreaseIncrease::operator++(int) {Increasetemp;temp.value=value++;returntemp;}voidmain(){Increasea,b,n;for(inti=0;i<10;i++)a=n++;cout<<"n=";n.display();cout<<"a=";a.display();for(i=0;i<10;i++)b=++n;cout<<"n=";n.display();cout<<"b=";b.display();}6.3.1重載++與--2023/1/134編輯課件成員函數(shù)重載++#include<iostream.h>classIncrease{public:Increase(){value=0;}voiddisplay()const{cout<<value<<'\n';};
Increaseoperator++();
//前置
Increaseoperator++(int); //后置
private:unsignedvalue;};IncreaseIncrease::operator++() {value++;return*this;}
IncreaseIncrease::operator++(int) {Increasetemp;temp.value=value++;returntemp;}voidmain(){Increasea,b,n;for(inti=0;i<10;i++)a=n++;cout<<"n=";n.display();cout<<"a=";a.display();for(i=0;i<10;i++)b=++n;cout<<"n=";n.display();cout<<"b=";b.display();}Increaseoperator++();IncreaseIncrease::operator++(){value++;return*this;}++n;預(yù)定義版本6.3.1重載++與--2023/1/135編輯課件成員函數(shù)重載++#include<iostream.h>classIncrease{public:Increase(){value=0;}voiddisplay()const{cout<<value<<'\n';};
Increaseoperator++();
//前置
Increaseoperator++(int); //后置
private:unsignedvalue;};IncreaseIncrease::operator++() {value++;return*this;}
IncreaseIncrease::operator++(int) {Increasetemp;temp.value=value++;returntemp;}voidmain(){Increasea,b,n;for(inti=0;i<10;i++)a=n++;cout<<"n=";n.display();cout<<"a=";a.display();for(i=0;i<10;i++)b=++n;cout<<"n=";n.display();cout<<"b=";b.display();}Increaseoperator++();IncreaseIncrease::operator++(){value++;return*this;}++n;重載版本6.3.1重載++與--2023/1/136編輯課件成員函數(shù)重載++#include<iostream.h>classIncrease{public:Increase(){value=0;}voiddisplay()const{cout<<value<<'\n';};Increaseoperator++(); //前置
Increaseoperator++(int);//后置
private:unsignedvalue;};IncreaseIncrease::operator++() {value++;return*this;} IncreaseIncrease::operator++(int) {Increasetemp;temp.value=value++;returntemp;}voidmain(){Increasea,b,n;for(inti=0;i<10;i++)a=n++;cout<<"n=";n.display();cout<<"a=";a.display();for(i=0;i<10;i++)b=++n;cout<<"n=";n.display();cout<<"b=";b.display();}Increaseoperator++(int);IncreaseIncrease::operator++(int) {Increasetemp;temp.value=value++;returntemp;}n++;預(yù)定義版本6.3.1重載++與--2023/1/137編輯課件成員函數(shù)重載++#include<iostream.h>classIncrease{public:Increase(){value=0;}voiddisplay()const{cout<<value<<'\n';};Increaseoperator++(); //前置
Increaseoperator++(int);//后置
private:unsignedvalue;};IncreaseIncrease::operator++() {value++;return*this;} IncreaseIncrease::operator++(int) {Increasetemp;temp.value=value++;returntemp;}voidmain(){Increasea,b,n;for(inti=0;i<10;i++)a=n++;cout<<"n=";n.display();cout<<"a=";a.display();for(i=0;i<10;i++)b=++n;cout<<"n=";n.display();cout<<"b=";b.display();}Increaseoperator++(int);IncreaseIncrease::operator++(int) {Increasetemp;temp.value=value++;returntemp;}n++;重載版本6.3.1重載++與--2023/1/138編輯課件成員函數(shù)重載++#include<iostream.h>classIncrease{public:Increase(){value=0;}voiddisplay()const{cout<<value<<'\n';};Increaseoperator++(); //前置
Increaseoperator++(int);//后置
private:unsignedvalue;};IncreaseIncrease::operator++() {value++;return*this;} IncreaseIncrease::operator++(int) {Increasetemp;temp.value=value++;returntemp;}voidmain(){Increasea,b,n;for(inti=0;i<10;i++)a=n++;cout<<"n=";n.display();cout<<"a=";a.display();for(i=0;i<10;i++)b=++n;cout<<"n=";n.display();cout<<"b=";b.display();}6.3.1重載++與--2023/1/139編輯課件友員函數(shù)重載++#include<iostream.h>classIncrease{public:Increase(){value=0;}voiddisplay()const{cout<<value<<'\n';};friendIncreaseoperator++(Increase&); //前置
friendIncreaseoperator++(Increase&,int); //后置
private:unsignedvalue;};Increaseoperator++(Increase&a){a.value++;returna;} Increaseoperator++(Increase&a,int){Increasetemp(a);a.value++;returntemp;}voidmain(){Increasea,b,n;for(inti=0;i<10;i++)a=n++;cout<<"n=";n.display();cout<<"a=";a.display();for(i=0;i<10;i++)b=++n;cout<<"n=";n.display();cout<<"b=";b.display();}6.3.1重載++與--2023/1/1310編輯課件友員函數(shù)重載++#include<iostream.h>classIncrease{public:Increase(){value=0;}voiddisplay()const{cout<<value<<'\n';};
friendIncreaseoperator++(Increase&);
//前置
friendIncreaseoperator++(Increase&,int); //后置
private:unsignedvalue;};Increaseoperator++(Increase&a){a.value++;returna;}
Increaseoperator++(Increase&a,int){Increasetemp(a);a.value++;returntemp;}voidmain(){Increasea,b,n;for(inti=0;i<10;i++)a=n++;cout<<"n=";n.display();cout<<"a=";a.display();for(i=0;i<10;i++)b=++n;cout<<"n=";n.display();cout<<"b=";b.display();}friendIncreaseoperator++(Increase&);Increaseoperator++(Increase&a){a.value++;returna;}++n;通過引用參數(shù)操作對象6.3.1重載++與--2023/1/1311編輯課件友員函數(shù)重載++#include<iostream.h>classIncrease{public:Increase(){value=0;}voiddisplay()const{cout<<value<<'\n';};friendIncreaseoperator++(Increase&); //前置
friendIncreaseoperator++(Increase&,int);
//后置
private:unsignedvalue;};Increaseoperator++(Increase&a){a.value++;returna;} Increaseoperator++(Increase&a,int){Increasetemp(a);a.value++;returntemp;}voidmain(){Increasea,b,n;for(inti=0;i<10;i++)a=n++;cout<<"n=";n.display();cout<<"a=";a.display();for(i=0;i<10;i++)b=++n;cout<<"n=";n.display();cout<<"b=";b.display();}friendIncreaseoperator++(Increase&,int);Increaseoperator++(Increase&a,int){Increasetemp(a);a.value++;returntemp;}n++;復(fù)制構(gòu)造局部對象6.3.1重載++與--2023/1/1312編輯課件友員函數(shù)重載++#include<iostream.h>classIncrease{public:Increase(){value=0;}voiddisplay()const{cout<<value<<'\n';};friendIncreaseoperator++(Increase&); //前置
friendIncreaseoperator++(Increase&,int);
//后置
private:unsignedvalue;};Increaseoperator++(Increase&a){a.value++;returna;} Increaseoperator++(Increase&a,int){Increasetemp(a);a.value++;returntemp;}voidmain(){Increasea,b,n;for(inti=0;i<10;i++)a=n++;cout<<"n=";n.display();cout<<"a=";a.display();for(i=0;i<10;i++)b=++n;cout<<"n=";n.display();cout<<"b=";b.display();}friendIncreaseoperator++(Increase&,int);Increaseoperator++(Increase&a,int){Increasetemp(a);a.value++;returntemp;}n++;偽參數(shù)6.3.1重載++與--2023/1/1313編輯課件友員函數(shù)重載++#include<iostream.h>classIncrease{public:Increase(){value=0;}voiddisplay()const{cout<<value<<'\n';};friendIncreaseoperator++(Increase&); //前置
friendIncreaseoperator++(Increase&,int); //后置
private:unsignedvalue;};Increaseoperator++(Increase&a){a.value++;returna;} Increaseoperator++(Increase&a,int){Increasetemp(a);a.value++;returntemp;}voidmain(){Increasea,b,n;for(inti=0;i<10;i++)a=n++;cout<<"n=";n.display();cout<<"a=";a.display();for(i=0;i<10;i++)b=++n;cout<<"n=";n.display();cout<<"b=";b.display();}6.3.1重載++與--2023/1/1314編輯課件7.3.2重載賦值運(yùn)算符賦值運(yùn)算符重載用于對象數(shù)據(jù)的復(fù)制
operator=必須重載為成員函數(shù)重載函數(shù)原型為:
類型
&類名
::operator=(const類名
&);
6.3.2重載賦值運(yùn)算符2023/1/1315編輯課件#include<iostream.h>#include<string.h>className{public:Name(char*pN);Name(constName&); //復(fù)制構(gòu)造函數(shù)
Name&operator=(constName&); //重載賦值算符
~Name();protected:char*pName;intsize;};voidmain(){NameObj1("ZhangSan");NameObj2=Obj1; //調(diào)用復(fù)制構(gòu)造函數(shù)
NameObj3("NoName");Obj3=Obj2=Obj1; //調(diào)用重載賦值算符函數(shù)
}定義Name類的重載賦值函數(shù)6.3.2重載賦值運(yùn)算符2023/1/1316編輯課件#include<iostream.h>#include<string.h>className{public:Name(char*pN);
Name(constName&);
//復(fù)制構(gòu)造函數(shù)
Name&operator=(constName&); //重載賦值算符
~Name();protected:char*pName;intsize;};voidmain(){NameObj1("ZhangSan");
NameObj2=Obj1;
//調(diào)用復(fù)制構(gòu)造函數(shù)
NameObj3("NoName");Obj3=Obj2=Obj1; //調(diào)用重載賦值算符函數(shù)
}定義Name類的重載賦值函數(shù)初始化對象時調(diào)用復(fù)制構(gòu)造函數(shù)6.3.2重載賦值運(yùn)算符2023/1/1317編輯課件#include<iostream.h>#include<string.h>className{public:Name(char*pN);Name(constName&); //復(fù)制構(gòu)造函數(shù)
Name&operator=(constName&);
//重載賦值算符
~Name();protected:char*pName;intsize;};voidmain(){NameObj1("ZhangSan");NameObj2=Obj1; //調(diào)用復(fù)制構(gòu)造函數(shù)
NameObj3("NoName");
Obj3=Obj2=Obj1;
//調(diào)用重載賦值算符函數(shù)
}定義Name類的重載賦值函數(shù)修改對象時調(diào)用重載賦值運(yùn)算符函數(shù)6.3.2重載賦值運(yùn)算符2023/1/1318編輯課件定義Name類的重載賦值函數(shù)Name::Name(char*pN){cout<<"Constructing"<<pN<<endl;pName=newchar[strlen(pN)+1];if(pName!=0)strcpy(pName,pN);size=strlen(pN);}Name::Name(constName&Obj) //復(fù)制構(gòu)造函數(shù){cout<<"Copying"<<Obj.pName<<"intoitsownblock\n";pName=newchar[strlen(Obj.pName)+1];if(pName!=0)strcpy(pName,Obj.pName);size=Obj.size;}Name&Name::operator=(constName&Obj) //重載賦值算符{delete[]pName;pName=newchar[strlen(Obj.pName)+1];if(pName!=0)strcpy(pName,Obj.pName);size=Obj.size;return*this;}Name::~Name(){cout<<"Destructing"<<pName<<endl;pName[0]='\0';delete[]pName;size=0;}Name&Name::operator=(constName&Obj){delete[]pName;pName=newchar[strlen(Obj.pName)+1];if(pName!=0)strcpy(pName,Obj.pName);size=Obj.size;return*this;}ChengMingthis10this->sizeLiHaiObj6Obj.size6.3.2重載賦值運(yùn)算符2023/1/1319編輯課件Name::Name(char*pN){cout<<"Constructing"<<pN<<endl;pName=newchar[strlen(pN)+1];if(pName!=0)strcpy(pName,pN);size=strlen(pN);}Name::Name(constName&Obj) //復(fù)制構(gòu)造函數(shù){cout<<"Copying"<<Obj.pName<<"intoitsownblock\n";pName=newchar[strlen(Obj.pName)+1];if(pName!=0)strcpy(pName,Obj.pName);size=Obj.size;}Name&Name::operator=(constName&Obj) //重載賦值算符{delete[]pName;pName=newchar[strlen(Obj.pName)+1];if(pName!=0)strcpy(pName,Obj.pName);size=Obj.size;return*this;}Name::~Name(){cout<<"Destructing"<<pName<<endl;pName[0]='\0';delete[]pName;size=0;}定義Name類的重載賦值函數(shù)Name&Name::operator=(constName&Obj){delete[]pName;pName=newchar[strlen(Obj.pName)+1];if(pName!=0)strcpy(pName,Obj.pName);size=Obj.size;return*this;}ChengMingthisLiHaiObj10this->size6Obj.size6.3.2重載賦值運(yùn)算符2023/1/1320編輯課件Name::Name(char*pN){cout<<"Constructing"<<pN<<endl;pName=newchar[strlen(pN)+1];if(pName!=0)strcpy(pName,pN);size=strlen(pN);}Name::Name(constName&Obj) //復(fù)制構(gòu)造函數(shù){cout<<"Copying"<<Obj.pName<<"intoitsownblock\n";pName=newchar[strlen(Obj.pName)+1];if(pName!=0)strcpy(pName,Obj.pName);size=Obj.size;}Name&Name::operator=(constName&Obj) //重載賦值算符{delete[]pName;pName=newchar[strlen(Obj.pName)+1];if(pName!=0)strcpy(pName,Obj.pName);size=Obj.size;return*this;}Name::~Name(){cout<<"Destructing"<<pName<<endl;pName[0]='\0';delete[]pName;size=0;}定義Name類的重載賦值函數(shù)Name&Name::operator=(constName&Obj){delete[]pName;
pName=newchar[strlen(Obj.pName)+1];if(pName!=0)strcpy(pName,Obj.pName);size=Obj.size;return*this;}thisLiHaiObj10this->size6Obj.size6.3.2重載賦值運(yùn)算符2023/1/1321編輯課件Name::Name(char*pN){cout<<"Constructing"<<pN<<endl;pName=newchar[strlen(pN)+1];if(pName!=0)strcpy(pName,pN);size=strlen(pN);}Name::Name(constName&Obj) //復(fù)制構(gòu)造函數(shù){cout<<"Copying"<<Obj.pName<<"intoitsownblock\n";pName=newchar[strlen(Obj.pName)+1];if(pName!=0)strcpy(pName,Obj.pName);size=Obj.size;}Name&Name::operator=(constName&Obj) //重載賦值算符{delete[]pName;pName=newchar[strlen(Obj.pName)+1];if(pName!=0)strcpy(pName,Obj.pName);size=Obj.size;return*this;}Name::~Name(){cout<<"Destructing"<<pName<<endl;pName[0]='\0';delete[]pName;size=0;}定義Name類的重載賦值函數(shù)Name&Name::operator=(constName&Obj){delete[]pName;pName=newchar[strlen(Obj.pName)+1];
if(pName!=0)strcpy(pName,Obj.pName);size=Obj.size;return*this;}thisLiHaiObjLiHai10this->size6Obj.size6.3.2重載賦值運(yùn)算符2023/1/1322編輯課件Name::Name(char*pN){cout<<"Constructing"<<pN<<endl;pName=newchar[strlen(pN)+1];if(pName!=0)strcpy(pName,pN);size=strlen(pN);}Name::Name(constName&Obj) //復(fù)制構(gòu)造函數(shù){cout<<"Copying"<<Obj.pName<<"intoitsownblock\n";pName=newchar[strlen(Obj.pName)+1];if(pName!=0)strcpy(pName,Obj.pName);size=Obj.size;}Name&Name::operator=(constName&Obj) //重載賦值算符{delete[]pName;pName=newchar[strlen(Obj.pName)+1];if(pName!=0)strcpy(pName,Obj.pName);size=Obj.size;return*this;}Name::~Name(){cout<<"Destructing"<<pName<<endl;pName[0]='\0';delete[]pName;size=0;}定義Name類的重載賦值函數(shù)Name&Name::operator=(constName&Obj){delete[]pName;pName=newchar[strlen(Obj.pName)+1];if(pName!=0)strcpy(pName,Obj.pName);
size=Obj.size;return*this;}thisLiHaiObjLiHai10this->size6Obj.size66.3.2重載賦值運(yùn)算符2023/1/1323編輯課件Name::Name(char*pN){cout<<"Constructing"<<pN<<endl;pName=newchar[strlen(pN)+1];if(pName!=0)strcpy(pName,pN);size=strlen(pN);}Name::Name(constName&Obj) //復(fù)制構(gòu)造函數(shù){cout<<"Copying"<<Obj.pName<<"intoitsownblock\n";pName=newchar[strlen(Obj.pName)+1];if(pName!=0)strcpy(pName,Obj.pName);size=Obj.size;}Name&Name::operator=(constName&Obj) //重載賦值算符{delete[]pName;pName=newchar[strlen(Obj.pName)+1];if(pName!=0)strcpy(pName,Obj.pName);size=Obj.size;return*this;}Name::~Name(){cout<<"Destructing"<<pName<<endl;pName[0]='\0';delete[]pName;size=0;}定義Name類的重載賦值函數(shù)Name&Name::operator=(constName&Obj){delete[]pName;pName=newchar[strlen(Obj.pName)+1];if(pName!=0)strcpy(pName,Obj.pName);size=Obj.size;
return*this;}thisLiHaiObjLiHai6this->size6Obj.size6.3.2重載賦值運(yùn)算符2023/1/1324編輯課件#include<iostream.h>#include<string.h>className{public:Name(char*pN);Name(constName&); //復(fù)制構(gòu)造函數(shù)
Name&operator=(constName&); //重載賦值算符
~Name();protected:char*pName;intsize;};voidmain(){NameObj1("ZhangSan");NameObj2=Obj1; //調(diào)用復(fù)制構(gòu)造函數(shù)
NameObj3("NoName");Obj3=Obj2=Obj1; //調(diào)用重載賦值算符函數(shù)
}定義Name類的重載賦值函數(shù)6.3.2重載賦值運(yùn)算符2023/1/1325編輯課件#include<iostream.h>#include<string.h>className{public:Name(char*pN);Name(constName&); //復(fù)制構(gòu)造函數(shù)
Name&operator=(constName&); //重載賦值算符
~Name();protected:char*pName;intsize;};voidmain(){NameObj1("ZhangSan");NameObj2=Obj1; //調(diào)用復(fù)制構(gòu)造函數(shù)
NameObj3("NoName");Obj3=Obj2=Obj1; //調(diào)用重載賦值算符函數(shù)
}定義Name類的重載賦值函數(shù)構(gòu)造對象6.3.2重載賦值運(yùn)算符2023/1/1326編輯課件#include<iostream.h>#include<string.h>className{public:Name(char*pN);Name(constName&); //復(fù)制構(gòu)造函數(shù)
Name&operator=(constName&); //重載賦值算符
~Name();protected:char*pName;intsize;};voidmain(){NameObj1("ZhangSan");
NameObj2=Obj1;
//調(diào)用復(fù)制構(gòu)造函數(shù)
NameObj3("NoName");Obj3=Obj2=Obj1; //調(diào)用重載賦值算符函數(shù)
}定義Name類的重載賦值函數(shù)復(fù)制構(gòu)造對象6.3.2重載賦值運(yùn)算符2023/1/1327編輯課件#include<iostream.h>#include<string.h>className{public:Name(char*pN);Name(constName&); //復(fù)制構(gòu)造函數(shù)
Name&operator=(constName&); //重載賦值算符
~Name();protected:char*pName;intsize;};voidmain(){NameObj1("ZhangSan");NameObj2=Obj1; //調(diào)用復(fù)制構(gòu)造函數(shù)
NameObj3("NoName");Obj3=Obj2=Obj1; //調(diào)用重載賦值算符函數(shù)
}定義Name類的重載賦值函數(shù)構(gòu)造對象6.3.2重載賦值運(yùn)算符2023/1/1328編輯課件#include<iostream.h>#include<string.h>className{public:Name(char*pN);Name(constName&); //復(fù)制構(gòu)造函數(shù)
Name&operator=(constName&); //重載賦值算符
~Name();protected:char*pName;intsize;};voidmain(){NameObj1("ZhangSan");NameObj2=Obj1; //調(diào)用復(fù)制構(gòu)造函數(shù)
NameObj3("NoName");
Obj3=Obj2=Obj1;
//調(diào)用重載賦值算符函數(shù)
}定義Name類的重載賦值函數(shù)析構(gòu)賦值操作后的對象6.3.2重載賦值運(yùn)算符2023/1/1329編輯課件7.3.3重載運(yùn)算符[]和()運(yùn)算符[]和()是二元運(yùn)算符
[]和()只能用成員函數(shù)重載,不能用友元函數(shù)重載6.3.3重載運(yùn)算符[]和()2023/1/1330編輯課件1.重載下標(biāo)算符[]
重載格式
類
::類型
operator[](類型
);[]運(yùn)算符用于訪問數(shù)據(jù)對象的元素6.3.3重載運(yùn)算符[]和()2023/1/1331編輯課件1.重載下標(biāo)算符[]
重載格式
類
::類型
operator[](類型
);[]運(yùn)算符用于訪問數(shù)據(jù)對象的元素定義重載函數(shù)的類名6.3.3重載運(yùn)算符[]和()2023/1/1332編輯課件1.重載下標(biāo)算符[]
重載格式
類
::類型
operator[][類型
];[]運(yùn)算符用于訪問數(shù)據(jù)對象的元素函數(shù)返回類型6.3.3重載運(yùn)算符[]和()2023/1/1333編輯課件1.重載下標(biāo)算符[]
重載格式
類
::類型
operator[](類型
);[]運(yùn)算符用于訪問數(shù)據(jù)對象的元素函數(shù)名6.3.3重載運(yùn)算符[]和()2023/1/1334編輯課件1.重載下標(biāo)算符[]
重載格式
類
::類型
operator[](類型
);[]運(yùn)算符用于訪問數(shù)據(jù)對象的元素右操作數(shù)為符合原語義,用int6.3.3重載運(yùn)算符[]和()2023/1/1335編輯課件1.重載下標(biāo)算符[]
重載格式
類
::類型
operator()[類型
];[]運(yùn)算符用于訪問數(shù)據(jù)對象的元素例 設(shè)x是類X的一個對象,則表達(dá)式
x[y]
可被解釋為
x.operator[](y)顯式聲明一個參數(shù)6.3.3重載運(yùn)算符[]和()2023/1/1336編輯課件2.重載函數(shù)調(diào)用符()
//用重載()算符實(shí)現(xiàn)數(shù)學(xué)函數(shù)的抽象#include<iostream.h>classF{public:doubleoperator()(doublex,doubley);};doubleF::operator()(doublex,doubley){returnx*x+y*y;}voidmain() {Ff;cout<<f(5.2,2.5)<<endl;}6.3.3重載運(yùn)算符[]和()2023/1/1337編輯課件2.重載函數(shù)調(diào)用符()
//用重載()算符實(shí)現(xiàn)數(shù)學(xué)函數(shù)的抽象#include<iostream.h>classF{public:doubleoperator()(doublex,doubley);};doubleF::operator()(doublex,doubley){returnx*x+y*y;}voidmain() {Ff;cout<<f(5.2,2.5)<<endl;}f.operator()(5.2,2.5)6.3.3重載運(yùn)算符[]和()2023/1/1338編輯課件2.重載函數(shù)調(diào)用符()
//用重載()算符實(shí)現(xiàn)數(shù)學(xué)函數(shù)的抽象#include<iostream.h>classF{public:doubleoperator()(doublex,doubley);};doubleF::operator()(doublex,doubley){returnx*x+y*y;}voidmain() {Ff;cout<<f(5.2,2.5)<<endl;}memFunmemFunf.memFun(5.2,2.5)
比較定義普通成員函數(shù)6.3.3重載運(yùn)算符[]和()2023/1/1339編輯課件istream
和ostream
是C++的預(yù)定義流類cin
是istream
的對象,cout
是ostream
的對象運(yùn)算符<<由ostream
重載為插入操作,用于輸出基本類型數(shù)據(jù)運(yùn)算符>>由istream
重載為提取操作,用于輸入基本類型數(shù)據(jù)程序員重載<<和>>,用于輸出和輸入用戶自定義的數(shù)據(jù)類型7.3.4重載流插入和流提取運(yùn)算符6.3.4重載流插入和流提取運(yùn)算符2023/1/1340編輯課件#include<iostream.h>#include<stdlib.h>classvector{public:vector(intsize=1);~vector();int&operator[](inti);friendostream&operator<<(ostream&output,vector&);friendistream&operator>>(istream&input,vector&);private:int*v;intlen;};voidmain(){intk;cout<<"InputthelengthofvectorA:\n";cin>>k;vectorA(k);cout<<"InputtheelementsofvectorA:\n";cin>>A;cout<<"OutputtheelementsofvectorA:\n";cout<<A;}為vector類重載流插入運(yùn)算符和提取運(yùn)算符6.3.4重載流插入和流提取運(yùn)算符2023/1/1341編輯課件#include<iostream.h>#include<stdlib.h>classvector{public:vector(intsize=1);~vector();int&operator[](inti);friendostream&operator<<(ostream&output,vector&);friendistream&operator>>(istream&input,vector&);private:int*v;intlen;};voidmain(){intk;cout<<"InputthelengthofvectorA:\n";cin>>k;vectorA(k);cout<<"InputtheelementsofvectorA:\n";cin>>A;cout<<"OutputtheelementsofvectorA:\n";cout<<A;}為vector類重載流插入運(yùn)算符和提取運(yùn)算符重載幾個運(yùn)算符6.3.4重載流插入和流提取運(yùn)算符2023/1/1342編輯課件#include<iostream.h>#include<stdlib.h>classvector{public:vector(intsize=1);~vector();int&operator[](inti);friendostream&operator<<(ostream&output,vector&);friendistream&operator>>(istream&input,vector&);private:int*v;intlen;};voidmain(){intk;cout<<"InputthelengthofvectorA:\n";cin>>k;vectorA(k);cout<<"InputtheelementsofvectorA:\n";cin>>A;cout<<"OutputtheelementsofvectorA:\n";cout<<A;}為vector類重載流插入運(yùn)算符和提取運(yùn)算符標(biāo)準(zhǔn)流類6.3.4重載流插入和流提取運(yùn)算符2023/1/1343編輯課件#include<iostream.h>#include<stdlib.h>classvector{public:vector(intsize=1);~vector();int&operator[](inti);friendostream&operator<<(ostream&output,vector&);friendistream&operator>>(istream&input,vector&);private:int*v;intlen;};voidmain(){intk;cout<<"InputthelengthofvectorA:\n";cin>>k;vectorA(k);cout<<"InputtheelementsofvectorA:\n";cin>>A;cout<<"OutputtheelementsofvectorA:\n";cout<<A;}為vector類重載流插入運(yùn)算符和提取運(yùn)算符使用預(yù)定義版本6.3.4重載流插入和流提取運(yùn)算符2023/1/1344編輯課件#include<iostream.h>#include<stdlib.h>classvector{public:vector(intsize=1);~vector();int&operator[](inti);friendostream&operator<<(ostream&output,vector&);friendistream&operator>>(istream&input,vector&);private:int*v;intlen;};voidmain(){intk;cout<<"InputthelengthofvectorA:\n";cin>>k;
vectorA(k);cout<<"InputtheelementsofvectorA:\n";cin>>A;cout<<"OutputtheelementsofvectorA:\n";
cout<<A;}為vector類重載流插入運(yùn)算符和提取運(yùn)算符使用重載版本cin.operator>>(A)6.3.4重載流插入和流提取運(yùn)算符2023/1/1345編輯課件#include<iostream.h>#include<stdlib.h>classvector{public:vector(intsize=1);~vector();int&operator[](inti);friendostream&operator<<(ostream&output,vector&);friendistream&operator>>(istream&input,vector&);private:int*v;intlen;};voidmain(){intk;cout<<"InputthelengthofvectorA:\n";cin>>k;
vectorA(k);cout<<"InputtheelementsofvectorA:\n";cin>>A;cout<<"OutputtheelementsofvectorA:\n";
cout<<A;}為vector類重載流插入運(yùn)算符和提取運(yùn)算符使用重載版本cout.operator<<(A)6.3.4重載流插入和流提取運(yùn)算符2023/1/1346編輯課件vector::vector(intsize){if(size<=0||size>100){cout<<"Thesizeof"<<size<<"isnull!\n";abort();
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 提高響應(yīng)速度與客戶滿意度計劃
- 探秘小宇宙幼兒園教學(xué)工作計劃文檔
- 寓教于樂的品牌推廣方法計劃
- 2025年獨(dú)立運(yùn)行風(fēng)力發(fā)電機(jī)組控制器及逆變器項(xiàng)目合作計劃書
- 會議紀(jì)要與決策執(zhí)行要點(diǎn)梳理
- 2025年體外診斷儀器產(chǎn)品項(xiàng)目合作計劃書
- 辦公室日常行為規(guī)范及規(guī)章制度解讀
- Zinc-sulfide-生命科學(xué)試劑-MCE
- racemic-Dunnione-SL-11010-生命科學(xué)試劑-MCE
- 新員工入職流程與職責(zé)說明
- 2024年05月浙江金華成泰農(nóng)商銀行員工招考筆試歷年參考題庫附帶答案詳解
- 帶看協(xié)議書范本(2篇)
- 2025-2030年中國科教玩具行業(yè)發(fā)展動態(tài)及前景趨勢分析報告新版
- 馬匹寄養(yǎng)協(xié)議書
- 股權(quán)投資項(xiàng)目建議書
- 2025年北京廣播電視臺招聘(140人)歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- (主城一診)重慶市2025年高2025屆高三學(xué)業(yè)質(zhì)量調(diào)研抽測 (第一次)物理試卷(含答案)
- 2025年中國電信集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 《肺癌圍手術(shù)期護(hù)理》課件
- 《糖尿病足護(hù)理查房》課件
- 2025年全國計算機(jī)二級等級考試全真模擬試卷及答案(共九套卷)
評論
0/150
提交評論