C 中的類究竟有什麼用,C 中的類繼承究竟有什麼作用?

2021-03-27 04:28:09 字數 5519 閱讀 6319

1樓:匿名使用者

類是絕對重要的,這個問題初學時不要問,就像當初你明明可以用漢語好好交流,為什麼要學英語。只有你要與來外交流時才知道其重要性!

2樓:匿名使用者

工業革命的標誌是:蒸汽機,電等,軟體革命的標誌是類。

3樓:匿名使用者

在物件導向的程式設計中,有經常接觸類、物件等專業名詞;到底什麼是類、什麼是物件呢?在程式又是怎樣運用呢?類是物件導向程式設計的核心,它實際是一種新的資料型別,也是實現抽象型別的工具,因為類是通過抽象資料型別的方法來實現的一種資料型別。

類是對某一類物件的抽象;而物件是某一種類的例項,因此,類和物件是密切相關的。沒有脫離物件的類,也沒有不依賴於類的物件。

什麼是類

類是一種複雜的資料型別,它是將不同型別的資料和與這些資料相關的操作封裝在一起的集合體。這有點像c語言中的結構,唯一不同的就是結構沒有定義所說的「資料相關的操作」,「資料相關的操作」就是我們平常經常看到的「方法」,因此,類具有更高的抽象性,類中的資料具有隱藏性,類還具有封裝性。

類的結構(也即類的組成)是用來確定一類物件的行為的,而這些行為是通過類的內部資料結構和相關的操作來確定的。這些行為是通過一種操作介面來描述的(也即平時我們所看到的類的成員函式),使用者只關心的是介面的功能(也就是我們只關心類的各個成員函式的功能),對它是如何實現的並不感興趣。而操作介面又被稱為這類物件向其他物件所提供的服務。

類的定義格式

類的定義格式一般地分為說明部分和實現部分。說明部分是用來說明該類中的成員,包含資料成員的說明和成員函式的說明。成員函式是用來對資料成員進行操作的,又稱為「方法」。

實現部分是用來對成員函式的定義。概括說來,說明部分將告訴使用者「幹什麼」,而實現部分是告訴使用者「怎麼幹」。

類的一般定義格式如下:

class 《類名》

;《各個成員函式的實現》

下面簡單地對上面的格式進行說明:class是定義類的關鍵字,《類名》是種識別符號,通常用t字母開始的字串作為類名。一對花括號內是類的說明部分(包括前面的類頭)說明該類的成員。

類的成員包含資料成員和成員函式兩部分。從訪問許可權上來分,類的成員又分為:公有的(public)、私有的(private)和保護的(protected)三類。

公有的成員用public來說明,公有部分往往是一些操作(即成員函式),它是提供給使用者的介面功能。這部分成員可以在程式中引用。私有的成員用private來說明,私有部分通常是一些資料成員,這些成員是用來描述該類中的物件的屬性的,使用者是無法訪問它們的,只有成員函式或經特殊說明的函式才可以引用它們,它們是被用來隱藏的部分。

保護類(protected)將在以後介紹。

關鍵字public,private和protected被稱為訪問許可權修飾符或訪問控制修飾符。它們在類體內(即一對花括號內)出現的先後順序無關,並且允許多次出現,用它們來說明類成員的訪問許可權。

其中,《各個成員函式的實現》是類定義中的實現部分,這部分包含所有在類體內說明的函式的定義。如果一個成員函式的類體內定義了,實現部分將不出現。如果所有的成員函式都在類體內定義,則實現部分可以省略。

下面給出一個日期類定義的例子:

class tdate

;//類的實現部分

void tdate::setdate(int y, int m, int d)

int tdate::isleapyear()

void tdate::print();

這裡出現的作用域運算子::是用來標識某個成員函式是屬於哪個類的。

該類的定義還可以如下所示:

class tdate

int isleapyear()

void print()

private:

int yeay, month, day;

}這樣對成員函式的實現(即函式的定義)都寫在了類體內,因此類的實現部分被省略了。如果成員函式定義在類體外,則在函式頭的前面要加上該函式所屬類的標識,這時使用作用域運算子::。

定義類時應注意的事項

1、在類體中不允許對所定義的資料成員進行初始化。

2、類中的資料成員的型別可以是任意的,包含整型、浮點型、字元型、陣列、指標和引用等。也可以是物件。另一個類的物件,可以作該類的成員,但是自身類的物件是不可以的,而自身類的指標或引用又是可以的。

當一個類的物件用為這個類的成員時,如果另一個類的的定義在後,需要提前說明。

3、一般地,在類體內先說明公有成員,它們是使用者所關心的,後說明私有成員,它們是使用者不感興趣的。在說明資料成員時,一般按資料成員的型別大小,由小至大說明,這樣可提高時空利用率。

4、經常習慣地將類定義的說明部分或者整個定義部分(包含實現部分)放到一個標頭檔案中。

4樓:匿名使用者

初學物件導向程式設計時是體會不到類的好處的

先學下去吧

把類的基礎內容學完再問這個問題

c++中的類繼承究竟有什麼作用?

5樓:匿名使用者

繼承能體現事物的普遍性和特殊性。

6樓:

這是c++物件導向程式設計的一個重要概念,繼承可以使**得到重用,子類還可以在父類的基礎上新增功能。

7樓:百度使用者

對於通明函式,如果不是虛繼承,那麼繼承下來的每個類裡都擁有這樣的函式

就會成為冗餘的東西,是同一樣東西的多分拷貝了

具體你到網上搜尋一下看看把

c++中,類的protected究竟有什麼作用?

8樓:可以叫我表哥

protected專門就是為繼承(子類)設計的 用public繼承,基類所有的訪問標識在子類不變, protected還是protected 。

c++程式設計思想中是這麼說的,public意味著隨後的定義對所有人都適用;private意味著除了該型別的建立者和該型別的內部成員函式之外,任何人都無法訪問這些定義;而protected是繼承的類可以訪問protected的成員,但不能訪問private的成員。

9樓:匿名使用者

- 宣告 private protected public

繼承private x x x

protected x o o

public x o o

類外呼叫 x x o

由上圖可見protected和public的區別:

在類外呼叫時,可以呼叫public成員,但是不能呼叫protected成員

也就這一個區別了。

10樓:趕緊擼毅管

錯了,不管何種繼承,基類的private成員派生類都無法訪問,當然也就出現了protected成員,集合了public成員(對派生類) 和 private成員(對外部訪問)的特點。

11樓:匿名使用者

protected成員

被公有繼承時,在你派生的這個類的內部成員中,能夠訪問。

比如class a

;class b : public a

//你可以在派生類b中訪問到父類a的成員n。

~b(){}

};但是你不能在類的外部訪問到父類的保護成員n。

比如下面的**就是錯誤的:

b x;

x.n = 1;

12樓:匿名使用者

c/c++

關鍵字protected關鍵字(c++和c#)

具有protected訪問控制級別的成員是半公開的,外界無法直接訪問這個控制級別的成員,但是派生類的base指標(在c++中也可用引用訪問)可以獲得訪問能力。protected與private基本相似,只有在繼承時有較大的區別。繼承的類可以訪問protected成員,但是不能訪問private成員。

以下是msdn提供的c# 中protected關鍵字的參考資料。

protected 關鍵字是一個成員訪問修飾符。受保護成員在它的類中可訪問並且可由派生類訪問。有關 protected 與其他訪問修飾符的比較,請參見可訪問性級別。

僅當訪問通過派生類型別發生時,基類的受保護成員在派生類中才是可訪問的。例如,請看以下**段:

// protected_keyword.csusing system;

class a

class b : a

}語句 a.x =10 將生成錯誤,因為 a 不是從 b 派生的。

結構成員無法受保護,因為無法繼承結構。

示例在此示例中,類 derivedpoint 從 point 派生;因此,可以從該派生類直接訪問基類的受保護成員。

// protected_keyword_2.cs

using system;

class point

class derivedpoint: point

, y = ", dp.x, dp.y); }}

輸出x = 10, y = 15

13樓:匿名使用者

起保護作用,protected只有繼承的類才可以訪問

c++中定義類有什麼用?應該怎麼用?

14樓:

類是事物抽象的集合,從類中可以抽象出具體的例項物件,可以更好的解決實際問題。

class 類名

類名 物件名//建立具體物件

15樓:再改名我發火

c++是物件導向程式語言,物件導向的三個特徵也就是封裝,繼承和多型。定義了一個類也就是將方法和資料封裝進了一個類。我們可以對這個類進行擴充套件,也就是繼承。

關於多型說起來則要麻煩點,建議自己找書看,物件導向程式設計是一種程式設計方法,與程序導向的程式設計方法(也就是程式由函式呼叫來形成)有很大的不同,可以簡化程式的複雜度,因為程序導向你的分析物件是函式,而物件導向你的分析物件是物件,物件的粒度比函式大得多,也就是抽象的層次更高了,你可以減少對細節的關注,降低程式設計的複雜性。

不知道你懂了沒,不過建議多看書,多實踐,才能真正體會物件導向的精義,說再多也不如自己的實踐體驗的深。

16樓:匿名使用者

類其實可以理解為結構,如果你會使用c語言的結構,就會使用類。

c++類型別什麼意思?怎樣用呢?

17樓:匿名使用者

類代表復了某一批物件的制共性和特徵。類是物件的抽象,物件是類的具體例項。和結構體型別和結構體變數一樣,c++中也是先宣告一個類型別,然後用它去定義若干個同型別的物件。

物件就是類型別的一個變數。

如class student //宣告瞭一個名為student的類型別

;student stud1,stud2; //定義了兩個student類的物件

事實上,類也是一種資料型別,它是一種廣義的資料型別,過去接觸的都是狹義的資料型別,如結構體型別的成員都是資料,而類這種資料型別的資料既包含資料也包含運算元據的函式。

c類和類名相同的那函式有什麼用的

class fc fc 它叫建構函式,就是用來初始化變數的,它是用系統自動呼叫的,要是樓主沒有寫建構函式的話,系統會為之生成一個預設的建構函式,它的呼叫就是在宣告變數的時候系統就自動地隱式呼叫。也許樓主會問為什麼要初始化呢?其實c 中類的資料成員的訪問不是有三種情況嘛 小弟就不說了 對於一般的資料成...

C中的抽象類問題

例如public abstract class person 張三類 派生與person class 張三 person 也就是說抽象類裡可以有eat那樣的抽象方法 成員 需派生類去實現。也可以有像sleep那樣的已經實現了的方法 成員 介面與抽象類有類似的地方,建議也一起看看。介面的話 裡面只能是...

消防驗收中的a類b類c類缺陷各指的是什麼

火災依據物質燃燒特性,可劃分為a b c d e f六類。a類火災 指固體物質火災。這種物質往往具有有機物質性質,一般在燃燒時產生灼熱的餘燼。如干草 木材 煤 棉 毛 麻 紙張等火災。b類火災 指液體火災和可熔化的固體物質火災。如汽油 煤油 柴油 甲醇 乙醇 瀝青 石蠟等火災。c類火災 指氣體火災。...