在傳統的Windows應用程序中,動態鏈接庫(Dynamic-Link Library,DLL)是一個非常重要的組成部分。在建立應用程序的可執行文件時,不需要
上面我們介紹了對應用程序結構進行組織的方法,接下來我們舉一個綜合應用的例子。程序實現的功能非常簡單,但其中用到了我們講解的各方面的知識。在程序中,我們利用名字
16.3.2 名字空間使用指示符使用名字空間指示符為編譯單元或名字空間主體導入了另一個名字空間的類型,對這些類型的使用無需全名。使用名字空間指示符的語法格式:
16.2.1 名字空間的聲明名字空間的聲明是關鍵字namespace後面跟名字空間名和名字空間主體,然後還可以跟一個分號。格式如下:namespace qua
16.2.2 成員與類型聲明名字空間的成員可以是一個類型(類、結構、接口、枚舉或代表),也可以是另一個名字空間。一個編譯單元或名字空間主體中可以包含多個成員聲
16.2.3 改寫“Welcome”程序為了演示名字空間的基本用法,我們把第三章的“Welcome”程序分為庫和控制台兩部分。庫用來提供顯示的消息,控制台程序
到現在為止,除了依賴一些系統提供的類(比如一開始我們就提到的System.Console)類,我們介紹的程序主要都是依靠自身來實現的。但更普遍的情況是,現實世
你是否有過這樣的經歷?在配置不是很好的機器上運行一些不是很完善的Windows應用程序,系統速度越來越慢,直至彈出一個警告對話框:“系統資源嚴重不足!請關閉部
Windows 2000的推出是許多人盼望已久的事情,它帶來的多種新特性令人為之興奮不已。對於一名程序設計人員來說,最關注的一些問題有:在Windows 20
和非抽象類一樣,抽象類也必須提供在基類列表中出現的所有接口成員的實現。不同的是,抽象類允許將接口的方法映射到抽象的成員方法。interface IMethod
15.4.3 接口映射類必須為在基類表中列出的所有接口的成員提供具體的實現。在類中定位接口成員的實現稱之為接口映射(interface mapping)。映射
接口IDerived從接口IBase中繼承,這時接口IDerived的成員方法覆蓋了父接口的成員方法。因為這時存在著同名的兩個接口成員,那麼對這兩個接口成員的
15.4.4 接口實現的繼承機制一個類繼承了它的基類提供的所有接口的實現如果不顯式地重新實現接口,派生類就無法改變從基類中繼承來的接口映射。interface
15.4.5 接口的重實現我們已經介紹過,派生類可以對基類中已經定義的成員方法進行重載。類似的概念引入到類對接口的實現中來,叫做接口的重實現(re-imple
15.3.1 接口成員的定義接口可以包含一個和多個成員,這些成員可以是方法、屬性、索引指示器和事件,但不能是常量、域、操作符、構造函數或析構函數,而且不能包含
對接口方法的調用和采用索引指示器訪問的規則與類中的情況也是相同的。如果底層成員的命名與繼承而來的高層成員一致,那麼底層成員將覆蓋同名的高層成員。但由於接口支持
從技術上講,接口是一組包含了函數型方法的數據結構。通過這組數據結構,客戶代碼可以調用組件對象的功能。15.2.1 聲明接口聲明實際上就是一種定義新的接口的類型
從軟件業的發展歷程來看,程序設計方法經歷了多次變革。每當一種程序設計方法不能適應應用軟件發展的需要時,人們就會努力尋找一種新的方法來解決這種“軟件危機”。組件
接口具有不變性,但這並不意味著接口不再發展。類似於類的繼承性,接口也可以繼承和發展。注意:接口繼承和類繼承不同。首先,類繼承不僅是說明繼承,而且也是實現繼承;
組件化程序設計方法繼承並發展了面向對象的程序設計方法。它把對象技術應用於系統設計,對面向對象的程序設計的實現過程作了進一步的抽象。我們可以把組件化程序設計方法