自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

實(shí)現(xiàn)C++接口映射淺析

開(kāi)發(fā) 后端
類必須為在基類表中列出的所有接口的成員提供具體的實(shí)現(xiàn)。在類中定位C#接口成員的實(shí)現(xiàn)稱之為C++接口映射。

C++接口用來(lái)定義一種程序的協(xié)定。實(shí)現(xiàn)接口的類或者結(jié)構(gòu)要與接口的定義嚴(yán)格一致。本文我們來(lái)了解顯式實(shí)現(xiàn)C#接口成員的主要方法,下面進(jìn)行詳細(xì)說(shuō)明介紹。。。

映射,數(shù)學(xué)上表示一一對(duì)應(yīng)的函數(shù)關(guān)系。C++接口映射的含義也是一樣,接口通過(guò)類來(lái)實(shí)現(xiàn),那么對(duì)于在接口中定義的每一個(gè)成員,都應(yīng)該對(duì)應(yīng)著類的一個(gè)成員來(lái)為它提供具體的實(shí)現(xiàn)。

類的成員及其C++接口映射成員之間必須滿足下列條件:

◆如果A和B都是成員方法,那么A和B的名稱、類型、形參表(包括參數(shù)個(gè)數(shù)和每一個(gè)參數(shù)的類型)都應(yīng)該是一致的。

◆如果A和B都是屬性,那么A和B的名稱、類型應(yīng)當(dāng)一致,而且A和B的訪問(wèn)器也是類似的。但如果A不是顯式接口成員執(zhí)行體,A允許增加自己的訪問(wèn)器。

◆如果A和B都是時(shí)間那么A和B的名稱、類型應(yīng)當(dāng)一致。

◆如果A和B都是索引指示器,那么A和B的類型、形參表(包括參數(shù)個(gè)數(shù)和每一個(gè)參數(shù)的類型)應(yīng)當(dāng)一致。而且A和B的訪問(wèn)器也是類似的。但如果A不是顯式接口成員執(zhí)行體,A允許增加自己的訪問(wèn)器。

那么,對(duì)于一個(gè)C++接口成員,怎樣確定由哪一個(gè)類的成員來(lái)實(shí)現(xiàn)呢?即一個(gè)接口成員映射的是哪一個(gè)類的成員?在這里,我們敘述一下接口映射的過(guò)程。假設(shè)類C實(shí)現(xiàn)了一個(gè)接口IInterface,Member是接口IInterface中的一個(gè)成員,在定位由誰(shuí)來(lái)實(shí)現(xiàn)接口成員Member,即Member的映射過(guò)程是這樣的:

1、如果C中存在著一個(gè)顯式接口成員執(zhí)行體,該執(zhí)行體與接口IInterface 及其成員Member相對(duì)應(yīng),則由它來(lái)實(shí)現(xiàn)Member 成員。

2、如果條件(1)不滿足,且C中存在著一個(gè)非靜態(tài)的公有成員,該成員與接口成員Member相對(duì)應(yīng),則由它來(lái)實(shí)現(xiàn)Member 成員。

3、如果上述條件仍不滿足,則在類C定義的基類列表中尋找一個(gè)C 的基類D,用D來(lái)代替C。

4、重復(fù)步驟1-3 ,遍歷C的所有直接基類和非直接基類,直到找到一個(gè)滿足條件的類的成員。

5、如果仍然沒(méi)有找到,則報(bào)告錯(cuò)誤。

下面是一個(gè)調(diào)用基類方法來(lái)實(shí)現(xiàn)接口成員的例子。類Class2 實(shí)現(xiàn)了C++接口Interface1,類Class2 的基類Class1 的成員也參與了接口的映射,也就是說(shuō)類Class2 在對(duì)接口Interface1進(jìn)行實(shí)現(xiàn)時(shí),使用了類Class1提供的成員方法F來(lái)實(shí)現(xiàn)接口Interface1的成員方法F:

【編輯推薦】

  1. 如何正確編寫(xiě)C++項(xiàng)目開(kāi)發(fā)編寫(xiě)項(xiàng)目計(jì)劃書(shū)
  2. 對(duì)C++庫(kù)函數(shù)進(jìn)行學(xué)習(xí)探索總結(jié)筆記
  3. 深度演示C++語(yǔ)言的種種高安全性
  4. 詳細(xì)介紹如何準(zhǔn)確無(wú)誤的編寫(xiě)C++語(yǔ)言
  5. 深度演示C++語(yǔ)言的種種高安全性
責(zé)任編輯:chenqingxiang 來(lái)源: 計(jì)世網(wǎng)
相關(guān)推薦

2010-01-26 09:50:30

C++接口

2009-09-01 18:29:24

C#實(shí)現(xiàn)多個(gè)接口

2009-08-31 16:48:02

C#實(shí)現(xiàn)IDispos

2010-01-18 14:41:52

Visual C++開(kāi)

2010-01-21 09:34:57

C++語(yǔ)法

2010-01-27 16:05:06

C++堆棧

2009-08-27 18:09:49

C#接口的實(shí)現(xiàn)

2009-08-27 14:29:28

顯式實(shí)現(xiàn)接口

2010-01-22 13:59:34

Visual C++應(yīng)

2010-01-20 10:19:55

C++數(shù)組

2010-01-27 17:16:52

C++構(gòu)造函數(shù)

2021-10-19 14:04:28

C++類型數(shù)字

2010-01-26 14:35:11

C++關(guān)鍵字

2009-08-24 11:02:52

C#接口映射

2010-01-25 14:18:46

C++對(duì)象模型

2010-02-06 17:39:52

C++ strtok

2010-01-21 16:18:06

C++語(yǔ)言

2010-01-21 13:48:30

C++基類

2010-01-27 15:46:15

學(xué)習(xí)C++效率

2010-02-03 17:23:27

C++使用接口
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)