c 基礎知識學習 第四天

2021-10-02 14:02:22 字數 2294 閱讀 1390

本片部落格是作者在學習c++的過程中的筆記記錄,希望和各位讀者一起學習交流

靜態成員變數

定義靜態成員變數

關鍵字static可以用於說明乙個類的成員,靜態成員提供了乙個同類物件的共享機制

把乙個類的成員說明為static時,這個類無論有多少個物件被建立,這些物件共享這個static成員

靜態成員屬於類,它不是物件成員

用法:

使用靜態成員變數

當靜態成員變數是public屬性的時候,可以使用類名或者物件來直接呼叫,類呼叫的時候時要用「::」來呼叫,物件呼叫的時候要用「.」來呼叫

當靜態成員變數是private屬性的時候,只能通過物件呼叫相應的成員函式來使用

靜態成員函式

概念靜態成員函式用關鍵字staic進行修飾

在類外呼叫靜態成員函式的時候,用「類名::」做限定詞或者通過物件進行呼叫

在靜態成員函式中能使用靜態成員變數,但是不能使用普通成員變數。

原因:如果在靜態成員函式中使用普通變數的話,那樣就不能確定這個普通變數屬於哪個物件,因此會發生錯誤

c++物件模型可以概括為兩部分:

語言中直接支援物件導向程式設計的部分,主要涉及如建構函式、析構函式、虛函式、繼承(單繼承、多繼承、虛繼承)、多型等。

對於各種支援的底層實現機制

在c語言中,「資料」和「處理資料的操作(函式)」是分開來宣告的,也就是說,語言本身並沒有支援「資料和函式」之間的關聯性。在c++中,通過抽象資料型別(abstract data type,adt),在類中定義資料和函式,來實現資料和函式的繫結

概括的說,c++類中有兩種成員資料:static、nonstatic;三種成員函式:static、nonstaitc、virtual

編譯器對屬性和方法的處理機制

c++類中的成員變數和成員函式是分開儲存的

成員變數:

普通成員變數:儲存於物件中,與struct變數有相同的記憶體布局和位元組對齊方式

靜態成員函式:儲存於全域性資料區中

成員函式:

儲存於**段中

總結:c++類物件中的成員變數和成員函式是分開儲存的

c++中類的普通成員函式都隱式包含乙個指向當前物件的this指標

靜態成員函式不包括指向具體物件的指標,普通成員函式包括乙個指向具體物件的指標

this指標

this指標是指向物件自己本身的乙個指標

若方法的形參的名字和物件的屬性的名字相同,則通過this指標來解決

const的修飾

eg:class test

private:

int m_a;

};這裡的const修飾的是this指標指向的記憶體空間,表示this指標指向的記憶體空間不能進行修改,this指標本省就是不可以進行修改的,因為this指標的型別是:test * const ,說明this指標是乙個常指標。

全域性函式pk成員函式

全域性函式轉化成成員函式,通過this指標隱藏左運算元

test add(test &t1,test &t2)===》 test add(test &t2)

成員函式轉換成全域性函式,多乙個引數

void print()===》void add(test *pthis)

函式返回元素和返回引用

函式返回引用是返回物件本身,即*this

test &add(test &t2);

返回返回元素是返回乙個匿名物件

test add(test &t2);

友元函式(破壞了類的封裝性)

類中通過使用關鍵字friend 來修飾友元函式,但該函式並不是類的成員函式,其宣告可以放在類的私有部分,也可放在共有部分。友元函式的定義在類體外實現,不需要加類限定

乙個類中的成員函式可以是另外乙個類的友元函式,而且乙個函式可以是多個類友元函式

友元函式可以訪問類中的私有成員和其他資料,但是訪問不可直接使用資料成員,需要通過對物件進行引用

友元函式在呼叫上同一般函式一樣,不必通過對物件進行引用

格式:friend 型別 函式名(形式引數);

友元類

友元類的所有成員函式都是另乙個類的友元函式,都可以訪問另乙個類中的隱藏資訊(包括私有成員和保護成員)

當希望乙個類可以訪問另乙個類的私有成員時,可以將該類宣告為另一類的友元類

格式:friend class 類名;

pyhton基礎知識學習第四天

表示式是值,變數和操作符 或叫運算子 的組合。單獨的乙個值是乙個表示式,單獨的變數也是乙個表示式。python語句是一段可執行 常見的有賦值語句,if語句,while語句,for語句等等。賦值賦值的特性 變數名在首次賦值時會被建立,變數名在引用前必須先賦值 序列賦值 在上面的例子中,寫了兩個元組,只...

python第四天 基礎知識

start 計數從 start 開始。預設是從 0 開始。例如range 5 等價於range 0,5 stop 計數到 stop 結束,但不包括 stop。例如 range 0,5 是 0,1,2,3,4 沒有5 step 步長,預設為1。例如 range 0,5 等價於 range 0,5,1 ...

C 基礎學習第四天

c 的基本 型別分為兩組 一組由儲存為整數的值組成,另一組由儲存為浮點數的值組成。整型之間通過儲存值時使用的記憶體量和有無符號來區分。整型從最小到最大依次是 bool,char,signed char,unsigned char,short,unsigned short,int,unsigned i...