2 4抽象資料的多重表示

2021-08-10 16:15:07 字數 1146 閱讀 8831

資料抽象已經介紹過了,具體看之前的2.1資料抽象引導

這裡介紹的是抽象資料的多重表示(個人理解類似overload過載,忽略類中的具體函式實現,直接使用對應的函式中的方法method)

書上給的是乙個複數實現的例子,分別使用直角座標表示 和 極座標表示法,來實現底層的封裝

例如上述中的複數運算add或mul-comoplex,可以忽略底層是哪個實現的,只要計算時候呼叫正確就可以。

值得是給乙個標誌來區分底層具體使用 直角座標表示 和 極座標表示法的哪乙個

類似c++ 的 前置++ 和後置++ 的過載operator的實現吧

這裡具體一點:

// 前置版本,返回遞增物件的引用

class classa;

classa& classa::operator++()

// 後置版本,返回遞增物件的原值

// 注意加入乙個額外的(不被使用的)int型別的形參,僅僅為了區分

classa;

classa classa::operator++(int)

// 呼叫:

classa a;

a.operator++(); //前置版本

a.operator++(0); //後置版本

這裡我參照c++prime的chap14 函式呼叫運算子來理解,也就是忽略引數的型別的不同,但最終呼叫的方法相同

也就是:

這裡說的應該是cast

這裡有幾個概念:

層次結構的不足

這裡果然談到了多重繼承,類之間的繼承不是單一等問題哈哈o(*≧▽≦)ツ

問題如下圖:

有事暫時意識流了,習題不想看…. ╮( ̄▽ ̄」)╭

抽象資料的表示與實現

函式結果狀態 define ture 1 define false 0 define ok 1 define error 0 define infeasible 1 define overflow 2 status是資料的型別,其值是函式結果狀態 typedef int status 基本函式 ma...

24 C 抽象類 存虛函式 介面 多重繼承

抽象類和介面 什麼是抽象類 比如圖形 shape 類,就是乙個抽象的概念,因為我們無法計算這個 圖形 的面積,所以它的成員函式area 是空的。而繼承它的子類 矩形,圓形,三角形等 就可以去重寫area 成員函式.裡面通過數學公式,計算出面積.參考圖形 shape 類,如下 class shape ...

抽象資料型別的表示與實現

各種字元的定義 如下 liyuechao 2014.8.7 c1.h 檔案名字 include include include malloc 等 include int max等 include eof z或f6 null include atoi include eof include floor...