c 中類的學習(二)

2021-07-11 19:01:33 字數 1084 閱讀 4835

1. 物件陣列的定義

使用建構函式初始化,比如:

box box[2]={

box(2,3,5);

box(1,3,2);

2.物件指標

box* b1;

box b2;

b1=&b2;  //定義

(*b1).height; 或者 b1->height; //兩句等價

感覺定義指向成員函式的指標這部分很少用啊,但是有點難,還是記一下好了

格式為資料型別名 (類名::*指標變數名)(引數列表);

初始化為

指標變數名=&類名::成員函式名

例子:void (time::*p2)();

p2=&time::get_time();

常見的還有指向物件的常指標

box* const p1;   //表示指向box型別的p1變數是乙個const, 理解成p1是乙個const變數,所以不能改變它的指向

常指標通常用來作為函式的形參,保證在函式執行過程中不改變指標變數的值,使其始終指向乙個物件

還有個叫做指向常物件的指標

const box *p1;    //表示p1指向的box變數是乙個常變數,不能通過p1來改變它的值

如果乙個變數被宣告成常變數,只能用指向常變數的指標指向它

指向常變數的指標不止可以指向const變數,還可以指向非const變數,此時不能通過指標改變該變數的值,但是指標變數本身的值是可以改變的

函式形參是非const的,實參就是非const的,如果形參是const的指標,實參可以是const,也可以是非const

3. 拷貝建構函式(複製建構函式)

程式需要建立乙個物件,並用另乙個同類物件對它進行初始化

函式的引數為類的物件時,呼叫時為了建立實參的拷貝,需要呼叫拷貝建構函式按照實參複製給形參、

函式的返回值是類的物件

這三種情況下系統自動呼叫拷貝建構函式

4. 靜態成員函式和靜態成員變數

靜態成員變數我記得在static的部落格裡面寫了用法了

靜態成員函式和非靜態成員函式的根本區別是:非靜態成員函式有this指標,靜態成員函式沒有this指標,所以靜態成員函式不能訪問非靜態的資料成員

C 類的學習筆記(二)

今天繼續學習類,這可是oop較為核心的內容。今天來講訪問控制。訪問控制有三個關鍵字protected public和private。當我們使用類物件的程式可以直接訪問公有成員函式,如果要訪問私有函式,我們可以通過公有函式來訪問。這是因為可以通過公有函式處理私有資料,這也是封裝的體現,資料要加密,不能...

C 中 類 學習

在c 中,用 類 來描述 物件 類是屬於使用者自定義的資料型別,class 並且該型別的資料具有一定的行為能力。與結構體一樣,類只是一種複雜資料型別的宣告,不占用記憶體,因此不可定義時對成員變數賦值 賦值需要記憶體空間儲存 乙個類的定義一般包含兩部分的內容,一是該類的屬性,另一部分是它所擁有的方法。...

C 中的類和物件 二

一,物件的動態建立和釋放 1.什麼是物件的動態建立和釋放 通常我們建立的物件都是由c 編譯器為我們在棧記憶體中建立的,我們無法對其進行生命週期的管理。所以我們需要動態的去建立該物件,因此我們需要在堆記憶體中建立物件和釋放物件。在c語言中為我們提供了malloc 函式和free 函式來為我們提供在堆記...