C 程式設計師快速學習C 三 完

2021-04-12 22:33:46 字數 2882 閱讀 5850

八.

類 對於物件導向語言來說

,類是重頭戲

,c#中類的使用和

c++中類似

,在細節方面有些差別

.

首先來看乙個

c#的類的例子

:

例: class

myclass:mybasicclass//

注意基類不需要寫限定符

} public

class mybasicclass

這裡寫出了乙個類的限定符

public,c#

還有的限定符

:

internal:

只能在當前工程中使用,當

class

前預設限制符時就預設為此限制符

public:

可以在任何工程中使用

abstract (

抽象的):

類不能例項化

,只能繼承

,可以有抽象成員

sealed (

密封的):

不能繼承

關鍵字能夠相互組合

.

首先需要知道一點

,c#中只能有乙個基類

,它不支援多重繼承

,同時不允許派生類的可訪問性比其基類更高

,也就是說

:內部類可以繼承於公共類

,反之不行

,在前文也已經說過

,object

類是c#

中最高的類

,如果乙個類沒有基類

,它就隱式的繼承了

object類,

在類中都可以使用

object

提供的方法

.

也許你還記得在

c++中

,類裡面定義的方法的具體實現是在類的外部實現的,但在

c#中已經不允許

,c#規定所有的**都必須在類中

,所以方法的**就只能和

c++中的內聯函式的格式一樣

,但是切記

,c#中的這樣寫法並不意味著是內聯的,在

c#中已經取消了內聯函式的定義

,.net

會在編譯的時候自動確定是否內聯

.

從上面的例子中還能發現乙個不同點就算是

:在類定義結束的時候沒有了分號

;

從現在開始

,從細節上闡述

c#的不同用法

:

1.在c++的名詞成員變數,在

c#中稱為字段

,欄位在

c++中不能初始化,但在

c#中可以直接初始化

,

2.建構函式,它於

c++使用相似

,但是不允許在其中給字段初始化

,c#還新增了一種靜態建構函式

public

class mybasicclass

} 它不需要限定符,它的作用是在程式執行是對靜態變數進行賦值

3.析構函式:它和c++的概念已經完全不同了,因為c#內部有了記憶體自動收集機,能夠對不用的記憶體進行**,所以不需要在析構函式中釋放記憶體了.也就無需析構函式,但是析構函式在派生於介面的類中函式有作用的,介面的概念後面會講到

4.虛函式:c#的虛函式同c++在語法上有區別,但是含義還是一樣的.c#中基類的虛函式使用關鍵字virtual 在派生類中使用override

5.運算子過載:c#中運算子過載和c++原理基本相同,但存在一些區別,區別在於有些運算子c#已經不允許過載了.不能過載的運算子有:-= , += , /= ,*= ,%=, 按位賦值運算子(&=

……) ,

布林運算子(&&

……),

賦值運算子(=).同時在c#中還有乙個硬性的規定,比如過載了運算子》 就必須過載》= ,過載了== ,就必須過載!=

反之毅然,當然不止這些還有< <= 等等

九.異常

c#和c++的異常基本相同:

c#的異常語句:

try

catch

finally

它們的不同點最主要的就是,不管是否丟擲異常,最後的finally塊一定馬上執行.

十.不安全**

什麼是不安全**,前面我已經說過,使用指標就是不安全**,在c#中是可以使用指標的,而且它和c++的格式一樣,但是必須放在不安全**段中.

聲名不安全**段,使用關鍵字unsafe .

例public unsafe int num()

不安全**可以是方法,類,結構

十一.介面

在c++中是沒有介面這個概念的.它是有com演變而來.乙個c#介面只是函式和屬性的定義.就好比乙個抽象類.它的定義和類採用相似的語法.使用關鍵字inte***ce

類對介面的實現是通過派生來實現的,對於介面,類可以多重繼承.

後記.

到這裡我就準備停筆了,也許你會發現類以後的內容變的簡單了,不詳實了,的確這於我剛開始的初衷有些背離,但這也是有原因的.首先就是我在寫第三篇的時候發現在《高階程式設計》一書的附錄部分已經有了c++程式設計師過渡c#的內容,而且比較詳細,大家可以參看此書,我只是把裡面大家經常會用到的語法進行了闡述,對於一些不常用到,大家可以通過專門的c#書籍進行詳細的了解.第二.在類之後的內容有許多講的都是c++不具備的內容,這些內容的講解也無法和c++進行比較來講,所以也沒有什麼捷徑,只能看c#的專業書籍進行學習,比如介面,委託,甚至類中的一些用法,還有我沒有提到的屬性,事件.通過此文學習可以在對c#一竅不通的情況下快速通過已學知識對其有所了解和掌握,但是一門語言是博大精深的,所以學習c#在此基礎上還需要看一下經典的教程,對其有乙個完全明了的深入理解,同時因為c#是建立在.net環境之下,所以對.net的機制也需要有一定的認識,最後我希望對c#有興趣的朋友都能完美的掌握其精華,在.net的劃時代歷程上走出輝煌的一步.

簡述C和C 程式設計師學習歷程

j 0 p w t5 d6 d c9 0 b u x x p y h i 9 l k9 s v4 m j4 s0 z f h g9 i p9 y k 3 j g e6 d n r 8 w8 q k m r o4 o b b 1 i7 j w x1 j4 s p1 f3 u0 m 假如我們開發vc,並...

c 程式設計師修煉真經之三

談一下跨平台網路通訊應用程式的設計,第一種呢就是用預編譯巨集,在不同的巨集定義下包含不同的標頭檔案,呼叫不同的函式,這個麻煩了點,但好處是直截了當,除錯方便,哪兒個步驟出來問題了然於胸,第二種呢就是用apr啦,標頭檔案呢應該是象這樣 include include include include i...

聘C 程式設計師

我公司是經北京市科學技術委員會認定的高新技術企業。公司主要從事電力行業軟體的開發和銷售 電力技術培訓和輸電線路工程設計諮詢服務等。公司的目標是成為技術領先,服務專業,贏利能力一流的公司 成為員工創業,發展,生活樂園。為了實現公司發展目標,我們需要更多優秀人才的加盟。公司 www.lily.net.c...