C 的類和This指標

2021-08-21 17:13:38 字數 1896 閱讀 2205

一.類的定義

//類的定義

class

classname

;//一定要注意後面的分號

類的定義通常有兩種方式:

a.類的宣告和定義全部放在類體中。

// 宣告和定義放在一起

class ctest

~ctest()

};

b.類的宣告放在.h檔案中,類的定義放在放在.cpp檔案中。

// test.h類的宣告

class ctest(

;// test.cpp類的定義

ctest::ctest()

ctest::~ctest()

c++中的struct和class有什麼區別:

兩個預設的訪問許可權不同,class是private型,而struct為public型(因為struct要相容c)

二.類的封裝

c++的三大特性:封裝繼承多型

封裝:隱藏物件的屬性和實現細節,僅對外公開介面和物件進行互動,將資料和運算元據的方法進行有機的結合。

函式是封裝的一種形式:函式中的語句被封裝在函式本身這個更大的實體中,被封裝的實體隱藏了它們的實現細節。可以呼叫該函式但是不可以訪問函式中的語句。

訪問限定符:public(公有)、private(私有)、protected(保護)

說明:

三、類的作用域

c++中的作用域:全域性域、區域性域、命名空間域、類域

類域

//命名空間域

namespace n1

}//全域性域

int a = 20;

void funtest()

//類域

class test

void geta()

private:

int _a;

};int main()

this指標

一、this指標特性:

this指標的型別:類型別* const

this指標是乙個常量,其內容不可以修改;但其所指向空間裡的內容是可以改的。

this指標並不是物件本身的一部分,不影響sizeof的結果。

注:乙個類的大小,實際就是該類中「成員變數」之和。

this的作用域在類「成員函式」的內部。

this指標是「類成員函式」的第乙個預設隱含引數,編譯器自動維護傳遞,類編寫者不能顯式傳遞。

只有在類的非靜態成員函式中才可以使用this指標,其他函式都不可以。

二、_thiscall呼叫約定:

_thiscall只能夠用在類的成員函式上。

引數從右向左壓棧。

如果引數個數確定,this指標通過 ecx暫存器傳遞給被呼叫者;

如果引數個數不確定(_cdecl),this指標在所有引數被壓棧後壓入堆疊。

三、面試題:

//this指標為空

class test

intvalue;

};int main()

C 類和物件 this指標

先來乙個c語言中的結構體 struct student 在建立結構體變數後,要修改結構體中的變數的話,需要這樣 int main 這樣子來修改或者呼叫 比如說我要寫乙個函式初始化學生 void initstudent student this,char name,char gender,int ag...

C 類的物件和類的指標的區別 指標和引用的區別

include include using namespace std class student void set string str void print 態成員函式 print int student number 0 靜態資料成員初始化 int main int argc,char arg...

C 類的物件和類的指標的區別

如下程式 include include using namespace std class student void set string str void print 態成員函式 print int student number 0 靜態資料成員初始化 int main int argc,cha...