我們將類定義和使用此類的客戶**分離,增強了軟體的可復用性.而介面定義並標準化了人和系統等諸如此類事物彼此互動的方式.每個類定義包含了類的公有成員函式的完整定義及其私有資料成員宣告.可是更好的軟體工程是在類定義的外部定義成員函式,這樣這些成員函式的實現細節對客戶**而言隱藏的,這種方式保證程式設計師不會寫出依賴於類的實現細節的客戶**.否則,若類的實現更改,則客戶**將更可能遭到損壞.
// gradebook.h gradebook class definition. this file presents gradebook's public
// inte***ce without revealing the implementations of gradebook's member
// functions, which are defined in gradebook.cpp.
#include // class gradebook uses c++ standard string class
using std::string;
// gradebook class definition
class gradebook
; // end class gradebook
源**gradebook.cpp定義了gradebook類的成員函式,這些函式宣告位於gradebook.h.
// gradebook.cpp gradebook member-function definitions. this file contains
// implementations of the member functions prototyped in gradebook.h.
#include
using std::cout;
using std::endl;
#include gradebook.h // include definition of class gradebook
// constructor initializes coursename with string supplied as argument
gradebook::gradebook( string name )
// end gradebook constructor
// function to set the course name
void gradebook::setcoursename( string name )
// end function setcoursename
// function to get the course name
string gradebook::getcoursename()
// end function getcoursename
// display a welcome message to the gradebook user
void gradebook::displaymessage()
// end function displaymessage
// gradebook class demonstration after separating its inte***ce from its implementation.
#include
using std::cout;
using std::endl;
#include gradebook.h // include definition of class gradebook
// function main begins program execution
int main()
// end main
測試輸出結果
下圖所示是顯示了生成可供教師使用的,可行的gradebook應用程式的編譯和連線過程.通常由乙個程式設計師建立和編譯類的介面和實現,而由不同的實現類客戶**的程式設計師使用它們.因此這個示意圖顯示了類實現程式設計師和客戶**程式設計師需要做的部分.圖中虛線劃分了類實現程式設計師,客戶**程式設計師和gradebook應用程式使用者各自需要做的部分.
負責建立可復用gradebook類的類實現程式設計師首先建立兩個檔案,乙個是標頭檔案gradebook.h,另乙個是包含(#include)標頭檔案的源**檔案gradebook.cpp.然後,編譯源**檔案,建立gradebook物件的目標**.
c 介面與實現的分離
由於c 沒有明確的將介面和實現分離,檔案之間的編譯依賴關係很大,如果有乙個檔案 發生變化,則可能影響其他檔案,乃至整個專案。因此,將物件實現細目隱藏於乙個指標背後的目的,我們可以設計乙個介面類。乙個實現類,負責介面的實現。如下 class personimpl class date class ad...
C 實現介面與功能的分離 Ribbon介面
以前寫程式,在mainwindow裡面到處都是選單 按鈕 工具欄的事件,這個文件的內容特別長,找乙個功能對應的 太多,很不方便,最近看了一些sharpdevelop的外掛程式方式 主要是網上其他朋友的據介紹,還有那本由該軟體開發者所編寫的書,不過只看了一部分 自己寫了乙個功能有限 很簡單的框架 暫且...
記 QSS與Qt主程式做到介面分離
qt中能夠實現邏輯程式與介面分離,主要是將按鈕貼圖,顏色繪製等放到qss檔案中,然後由相應的視窗載入就可以。有幾點注意 1.不同的視窗可以載入不同的qss檔案。例如程式中有多個視窗,那麼你可以為每個視窗寫乙個qss檔案,這樣每個視窗就有自己獨特的風格了。而且更換 時,只要將載入的qss檔案更換一下就...