程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 實現C++接口映射淺析

實現C++接口映射淺析

編輯:C++入門知識

C++接口用來定義一種程序的協定。實現接口的類或者結構要與接口的定義嚴格一致。本文我們來了解顯式實現C#接口成員的主要方法,下面進行詳細說明介紹。。。

映射,數學上表示一一對應的函數關系。C++接口映射的含義也是一樣,接口通過類來實現,那麼對於在接口中定義的每一個成員,都應該對應著類的一個成員來為它提供具體的實現。

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

◆如果A和B都是成員方法,那麼A和B的名稱、類型、形參表包括參數個數和每一個參數的類型)都應該是一致的。

◆如果A和B都是屬性,那麼A和B的名稱、類型應當一致,而且A和B的訪問器也是類似的。但如果A不是顯式接口成員執行體,A允許增加自己的訪問器。

◆如果A和B都是時間那麼A和B的名稱、類型應當一致。

◆如果A和B都是索引指示器,那麼A和B的類型、形參表包括參數個數和每一個參數的類型)應當一致。而且A和B的訪問器也是類似的。但如果A不是顯式接口成員執行體,A允許增加自己的訪問器。

那麼,對於一個C++接口成員,怎樣確定由哪一個類的成員來實現呢?即一個接口成員映射的是哪一個類的成員?在這裡,我們敘述一下接口映射的過程。假設類C實現了一個接口IInterface,Member是接口IInterface中的一個成員,在定位由誰來實現接口成員Member,即Member的映射過程是這樣的:

1、如果C中存在著一個顯式接口成員執行體,該執行體與接口IInterface 及其成員Member相對應,則由它來實現Member 成員。

2、如果條件1)不滿足,且C中存在著一個非靜態的公有成員,該成員與接口成員Member相對應,則由它來實現Member 成員。

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

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

5、如果仍然沒有找到,則報告錯誤。

下面是一個調用基類方法來實現接口成員的例子。類Class2 實現了C++接口Interface1,類Class2 的基類Class1 的成員也參與了接口的映射,也就是說類Class2 在對接口Interface1進行實現時,使用了類Class1提供的成員方法F來實現接口Interface1的成員方法F:

  1. 如何正確編寫C++項目開發編寫項目計劃書
  2. 對C++庫函數進行學習探索總結筆記
  3. 深度演示C++語言的種種高安全性
  4. 詳細介紹如何准確無誤的編寫C++語言
  5. 深度演示C++語言的種種高安全性

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved