网站大量收购闲置独家精品文档,联系QQ:2885784924

第13章.pptVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第13章

挑戰C++程式語言 ─第13章 運算子的覆載 本章主題 夥伴函式 this指標 覆載的基本觀念 定義運算子覆載 在運算子的前面加上operator這個保留字來形成覆載函式的名稱。例如operator+()就是加法運算子的覆載操作函式 定義函式的引數個數與引數的資料型態: 基本上,一元運算子的引數個數為零個,而二元運算子須要一個引數 對於 ++ 和 -- 這兩個特殊的一元運算子,有前置式(如++x)與後置式(如x++)的差別,因此,必須用一個引數來加以分辨 串流運算子和的覆載 C++在iostream類別庫中定義了ostream (Output Stream)和istream (Input Stream)兩個分別用來作輸出與輸入的類別,cout是ostream的一個案例,而cin則是istream的案例 除了iostream類別庫之外,針對其它類別定義 和 覆載操作函式時,絕對不能將函式定義為該類別的成員函式,必須以夥伴函式 串流運算子和的覆載 一元運算子 - 取址運算子 運算子如果為一元運算的話,它是用來取出變數在記憶體中的位址,而如果是二元運算的話,則是用來對兩個運算元做AND布林運算 C++會為所有新定義的類別預設其覆載函式,也就是說,如果類別定義中無operator ()函式,我們仍然可以對這個類別作取址的運算,其結果會傳回該類別物件的位址 一元運算子 - !運算子 ! 運算子在C++語言中,代表的是布林運算中的NOT 可以將其定義為類別的操作成員之一,也可以把它定義在類別外以夥伴函式的方式來完成operator ! ()函式的定義 一元運算子 - ++與--運算子 這兩個運算子分別可以有兩種不同意義的運作形式:前置運算與後置運算 前置運算之覆載函式的定義與一般一元運算子的覆載函式相同,若定義為類別的操作成員之一,並不需要引數。若是以夥伴函式的方法定義在類別外,則須加上一個引數 後置運算的定義方式,則是在函式中額外再加上一個輔助引數,其資料型態必須為int,且其值永遠等於0 一元運算子 - ++與--運算子 二元運算子 - 足標運算子[] 足標運算子(subscription operator)[] 是用來取出陣列(array)資料結構中的某一個元素 當編譯程式看到像x[y]的敘述時,會呼叫x.operator[](y),其中x是一個類別的物件,而y則是位置引數 operator[]()只能被定義成為類別的操作成員之一,也就是不可以用夥伴函式的方法定義[]運算子覆載函式 二元運算子 - 足標運算子[] 設值運算子 = C++會為每個類別預設一個設值運算子覆載函式,其中採取了將資料成員逐一拷貝的方式完成設值的動作 當資料成員中含有屬於指標型態的時候,這樣的預設動作通常不是我們所想要的 定義設值運算子覆載函式,也就是operator = (type)必須注意到三個要點: operator = (type)一定要被定義成為類別的操作成員之一,不能夠以夥伴函式或是類別外一般函式的形式來定義; 可以定義多個設值運算子覆載函式,隨著每個函式的引數型態不同,可以接收不同型態資料的設值動作 所有的設值運算覆載函式的回傳型態都應該設成該類別的參考型態 * * 夥伴函式與this指標 覆載的基本觀念 串流運算子覆載 一元運算子覆載 二元運算子覆載 夥伴函式(Friend Functions)指的是被定義在類別外的一個函式,但是它具有權力可以存取類別中的所有資料成員 this是C++的一個保留字,它是一個指向物件自己的指標。所有的操作成員均會有this這個隱含的引數 傳統的程式語言: 覆載早已經存在了。舉例來說,無論是針對整數、浮點數或雙倍精度浮點數,它們的除法都是用同一個運算子 / ,而除法運算子會依運算元的資料型態,使用正確的程式碼來加以運算。 同樣地,加法、減法、乘法也是具有這樣的性質 這些運算子是否也適用於新定義的類別? * * *

文档评论(0)

daoqqzhuan2 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档