天天看點

嵌入式每日學習心得2017.08.04

類成員變量的存儲類型:

C語言:1、棧區(動太區) 2。堆區, 3.靜态區

1、普通變量作為成員變量

2、指針變量作為成員變量

3、靜态變量作為成員變量:

1、靜态變量在程式調用時就已經配置設定好空間,2、在類外時必須初始化 3.對象共享靜态變量(也就是執行個體化對象時,不會再配置設定靜态空間) 4。構造函數的初始化清單是不能對靜态成員變量初始化

初始化: 類型  類::靜态變量=初始值;   這不是通路

3.1靜态函數作為成員函數

1、靜态函數屬于類,不尾具體對象(屬于所有該類的對象) 2、靜态函數是不能通路非靜态成員。

總結:靜态成員屬于類(也就是屬于所有對象,也就是共享)

4、對象作為成為成員變量:

  注:成員對象的初始化隻能由構造函數的初始化清單初始化。如果不顯示去初始化成員對象,則系統預設添加無參構造方法。如果顯示的調用構造函數,則調用函構造函數由形參列來比對調用

 student::student():s() --調用s的無參構造函數

student::student(int id,const char* name,int c=0,int e=0,int m=0):id(id),s(c,e,m)  --調用s(int,int,int)構造函數

總結:構造函數就是用于初始化成員的空間(普通變量,指針變量,成員對象)

友元:

  友元函數(*):當某個函數需要通路某類的非公有成員(方法,屬性)時,由于類的封裝性,在類外不能通路,可以将此函數聲明為此類的類友函數時。此函數就可通路此類的任何成員。

class 類

{

。。。

friend 聲明;

。。。

}

注:優點:友元可以通過聲明友元時,此函數通路所有成員

   缺點:破壞封裝性。

  友元類:

運算符:隻能識别基本類型(整型,浮點型,字元類型)的操作,不能直接識别複雜類型

重載運算符:可以通過“拓展”運算符來運算操作複雜類型。 --本質就是函數

     傳回值 operator運算符(形參) 本質:就是函數

1、

+   - * /  雙目運算符

成員函數: 傳回值 operator+(形參&)

非成員函數:       傳回值  operator+(形參1,形參2&)

2、重載下标未能:引用數組:

int buf[10]={1,2,3,4,};    buf[3]

   傳回值  operator[](int);

總結1:

1、重載運算符時,不會改變運算的順序。(操作數與被操作的順序不會改變)

2、不會改變結合性。  

3、不會改變運算的優先級(與C語言中運算符優先一緻)   1+2+3+4  ia+ib+ic+id

4、不會改運算符的特性。

5、如下運算是不能重載的:    .   ->    sizoef    ::    ? :    (已經在C++/C語言中明确作用)

發送消息:

類 ia,ib;

類 ic=ia+ib; //等價于  類ic=ia.operator+(ib);

繼續閱讀