日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

多态性-运算符重载

發布時間:2025/3/15 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多态性-运算符重载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.問題引入

運算符重載是指對已有的運算符賦予多重含義。 必要性 C++中預定義的運算符其運算對象只能是基本數據類型,而不適合用戶自定義的類型(如類類型)。 實現機制 將指定的運算表達式轉化為對運算符函數的調用,運用對象轉化為運算符函數的實參。編譯器對重載運算符的選擇,遵循函數重載的選擇機制。 規則與限制 可以重載C++中除下列(. ? .* ? :: ? ?:)運算符外的所有運算符 只能重載C++語言中已有的運算符,不可以臆造新的運算符 不改變原運算符的優先級和結合性,也不能改變操作數的個數 經重載的運算符,其操作數中至少應該有一個是自定義類型

2.運算符重載格式

函數類型 ?operator運算符 ?(形參) { ……} 強調:在這里,我們僅僅研究重載為類成員函數的情況,形式參數個數=原操作數個數-1(后置++、--除外)

3.復數運算實驗("+" "-"重載)

#include<iostream> using namespace std;class complex{ public:complex(){ cout<<"Default Constructor is Called!"<<endl; }complex( double r , double i ){real = r; imag = i;cout<<"Parameter Constructor is Called!"<<endl;}complex(complex &c) { real = c.real; imag = c.imag;cout<<"Copy Constructor is Called!"<<endl; }~complex(){ cout<<"Destructor is Called!"<<endl; }complex operator+ (complex c1); //聲明“+”重載為成員函數complex operator- (complex c1); //聲明“-”重載為成員函數void display(); private:double real;double imag; }; / complex complex::operator+ (complex c2) {complex c;c.real = c2.real + real;c.imag = c2.imag + imag;return complex(c.real,c.imag); } complex complex::operator- (complex c2) {complex c;c.real = real - c2.real;c.imag = imag - c2.imag;return complex(c.real,c.imag); } void complex::display() {cout<<"( "<<real<<" , "<<imag<<" )"<<endl; } / int main() {complex c1(5,4),c2(2,10),c3;cout<<"c1= "; c1.display();cout<<"c2= "; c2.display();cout<<"****************"<<endl;c3 = c1+c2;cout<<"c3=c1+c2= "; c3.display();cout<<"****************"<<endl;c3 = c1-c2;cout<<"c3=c1-c2= "; c3.display();cout<<"****************"<<endl;return 0; }結果及分析:

總結

以上是生活随笔為你收集整理的多态性-运算符重载的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。