C 基礎 1 類的定義 如何優雅的定義乙個類

2021-05-07 14:22:10 字數 1702 閱讀 4206

1. 寫在前面:

從本節開始,學習c++程式設計的基本語法。c++語言,雖然相容c語言語法,但是,它的優勢最主要還是在物件導向的特性這部分

所以,我們之間從物件導向的程式設計知識開始。

2. 實踐內容:

類的定義: 定義乙個類a,無實際意義,僅僅為了展示語法特性。

3. 思考:

定義乙個類,有什麼注意事項?

如何優雅的定義乙個類?

4. **與**說明:

(1)**:

/*  test source:                       */

#include "stdio.h"

class a

~a()

}int getj()

void setj(int j)

};int main()

(2)**說明:

錯誤1: iso c++ forbids initialization of member `i'

解釋:在 cpp檔案中,資料成員定義的同時,不可以進行初始化,對於int型的值,預設為0。

最佳實踐:如果要對資料成員進行初始化,請在建構函式中進行;或者,在標頭檔案.h/.hpp檔案中進行。

錯誤2:field `a' has incomplete type:

解釋:不能在類中再宣告乙個該類的資料成員;但是可以宣告該類的指標變數pa。因為在編譯時,a型別還沒有編譯完成,計算機無法識別a型別(所以提示incomplete type錯誤),無法為a變數申請記憶體空間。但是,a *pa中,pa是指標型別,是乙個位址,計算機可以為其分配記憶體空間。

最佳實踐:a *pa雖然可以正確使用,但不建議這樣用。因為pa的功能可以用this代替。

5. 要點總結:

類是一種使用者自定義的資料型別。

(1)在類內不允許對所定義的資料成員進行初始化。

(2)類中的資料成員的型別可以是任意的,包括整型、浮點型、字元型、陣列、指標和引用等。

也可以是物件。即另乙個類的物件,可以作為該類的成員。但是,自身類的物件是不可以的(a a是非法的),而自身類的引用是可以的(a *pa是合法的)。

(3)在類的說明部分之後必須加分號「;」。

6. 原文引用:

(1)those types are not "abstract";

they are as real asintandfloat.  

這些型別並不"抽象";

它們像int和float一樣實際。  [ chapter 10 classes: p234]

(2)ideally, such types should not differ from built-in types in the way they are used, only in the way they are created.

最理想的情況是,在使用方式上應該無法區分出這種型別與內部型別,

使它們的差異僅僅在建立的方式上。 [ 10.2 classes: p235 ]

------- << the c++ programming language >> third edition, bjarne stroustrup

C 基礎學習(1) 類的定義

2.成員的訪問控制 3.類的資料成員 4.類的成員函式 5.類的宣告 本文基於西工大網課總結,總結的不好請見諒 三大特點 封裝 資料成員與行為成員相結合,視為乙個整體 類 繼承與派生 保持原有特性的基礎上,進行更具體的說明 如何定義乙個類 資料成員 成員函式 類定義位置 class data voi...

c 類和C 中定義類的定義

c 類和c 中定義類的定義 相同處 1.1.都需要使用 class標識 1.2.都包含有成員 函式,屬性 1.3.都有private public protect 標識的成員 2.不同之處 2.2.c 申明類及成員時格式 class member 一般在class的末尾處需要乙個英文分割符號 pub...

C 類的定義

c 使用class關鍵字來定義類 class myclass 這段 定義了乙個類myclass。定義了乙個類後,就可以在專案中能訪問該定義的其他地方對該類進行例項化。在預設情況下,類宣告為內部的,即只有當前專案中的 才能訪問它。可以用internal訪問修飾符關鍵字顯式指定,如下所示 但這是不必要的...