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訪問修飾符關鍵字顯式指定,如下所示 但這是不必要的...