一,物件的動態建立和釋放
1.什麼是物件的動態建立和釋放
通常我們建立的物件都是由c++編譯器為我們在棧記憶體中建立的,我們無法對其進行生命週期的管理。所以我們需要動態的去建立該物件,因此我們需要在堆記憶體中建立物件和釋放物件。在c語言中為我們提供了malloc()函式和free()函式來為我們提供在堆記憶體中分配變數的方式,但是在c++中引入了new和delete關鍵字來讓我們動態的建立和釋放變數。
2.new和delete關鍵字
3.new和delete關鍵字與malloc和free的區別
4.new和delete關鍵字示例
# define _crt_secure_no_warnings# include
using
namespace
std;
class
teacher
/*有參建構函式
*/teacher(
char * name, int
age)
/*拷貝建構函式
*/teacher(
const teacher &student)
/*析構函式
*/ ~teacher()
cout
<< "
析構函式被執行...
"<}
};int
main()
二,靜態成員變數和靜態成員函式
1.static關鍵字
static關鍵字用來宣告類中的成員為靜態屬性。當用static關鍵字修飾成員後,該類所建立的物件共享static成員。無論建立了多少個物件,該成員只有乙份例項。靜態成員是與類相關的,是類的一種行為,而不是與該類的物件相關。
2.靜態成員的概念
靜態成員是類所有的物件的共享成員,而不是某個物件的成員,它在物件中不占用儲存空間,這個成員屬於整個類,而不屬於具體的乙個物件,所以靜態成員變數無法在類的內部進行初始化,必須在類的外部進行初始化。比如定義乙個學生類,那麼學生物件總數可以宣告為static,在構造方法中,對該變數進行加1,從而統計學生物件的數量。
3.靜態成員變數總結
4.靜態成員函式總結
5.靜態成員重點歸納
6.靜態成員變數演示
# includeusingnamespace
std;
class
mystudent
void getcount()/*
普通成員函式訪問靜態成員變數
*/};
/*靜態成員變數初始化
*/int mystudent::count = 0
;int mystudent::n = 10
;int
main()
7.靜態成員函式演示
# includeusingnamespace
std;
class
test
public
:
static
void
xoxo();
static
void
test()
};/*
初始化靜態成員
*/int test::n = 10;/*
類中宣告,類外實現
*/void
test::xoxo()
intmain()
三,友元函式和友元類
1.友元函式
當我們定義類的時候,使用private關鍵字修飾成員變數(成員函式),這樣做到了訪問控制。有些時候,我們需要讓一些函式來訪問物件的私有成員(屬性或方法),c++為我們提供了友元函式這個概念,所謂的友元函式就是指這個函式是這個類的好朋友,允許讓這個函式訪問這個類建立的物件的私有屬性和私有方法。友元函式用friend函式來宣告,友元函式的宣告必須在類的內部,友元函式的實現必須要在類的外部(如果友元函式的實現也在內部,那還要用友元函式幹什麼?),友元函式的宣告位置與訪問控制符無關。
2.友元函式示例
# includeusingnamespace
std;
/*定義點類
*/class
point
};/*
友元函式的實現
*/int distance(point &p1, point &p2)
intmain()
3.友元類
4.友元類示例
# includeusingnamespace
std;
/*定義類a
*/classa};
/*定義類b
*/class
b
void
display()
};int
main()
C 類和物件(二)
類和物件 類的物件如何引用私有資料成員 1 通過公有函式為私有成員賦值 class test void printxy void void main void 2 利用指標訪問私有資料成員 class test void getxy int px,int py 提取x,y值 void printxy...
C 類和物件(二)
隱含的this指標 1 每個成員函式都有乙個指標形參,它的名字是固定的,稱為this指標,this指標是隱式的。建構函式比較特殊,沒有這個隱含this形參 2 編譯器會對成員函式進行處理,在物件呼叫成員函式時,物件位址作實參傳遞給成員函式的第乙個形參this指標。3 this指標是成員函式隱含指標形...
C 中的類和物件
c 既是物件導向也是面向過程的語言。在這裡有乙個重要的概念 類。何謂類?類是對物件的一種抽象,舉例來講 每乙個實實在在存在的人就是乙個物件,人有很多共同的特徵 乙個頭,兩條腿,能走,能跑 這具有共同特徵的人就成為乙個類。類是乙個抽象的名詞,每乙個人 即物件 是這個類的例項。物件間具有的共同特徵是物件...