1. 程式人生 > >結構體定義以及類的定義

結構體定義以及類的定義

結構體

1、最正規定義方式:定義結構體data,此時結構體相當於一個型別,比如int,如需使用此結構體,方法同int

struct data     char a;     int d; };

    struct data B

2、定義結構體data同時,定義需要使用的結構體變數sum1,sum2。如後面再需要定義結構體變數,方法同1

struct data { char a;     int d; }sum1, sum2;

    struct data sum3;

3、定義結構體時,結構體名稱預設,同時定義結構體變數sum1,sum2。但後面不可再定義結構體變數!

struct {      char a;     int d; }sum1, sum2;

    struct sum3;  <-  編譯器報錯

4、使用typedef 定義結構體,定義結構體data時,使用typedef,此種形式幾乎不使用,再定義結構體變數時,仍需加struct,否則編譯器報錯!

typedef struct data

{   char a;     int d; };

    struct data sum3;

5、使用typedef定義結構體同時,給data結構體別名DATA,後續定義可不用使用struct data,直接使用DATA即可。

typedef struct data {   char a;     int d; }DATA;

    struct data sum3; <- 可用,但不推薦

    DATA sum1; <- 最常用方式

6、(最常用)使用typedef定義結構體時,省掉結構體第一個別名data,直接在後面加DATA,使用方法同5。

typedef struct {     char aa;     char bb;     char cc;     int dd; }DATA;

    DATA sum3;

class 型別名                              //類頭

{private:                                   //類體,內容是類的成員表,包括資料和函式

私有的資料和成員函式;

public:

公用的資料和成員函式;

};   

類的靜態函式不屬於該類的任何一個物件,而是屬於類本身,所以不受物件區域性變數的影響,在執行時可以直接呼叫類的靜態函式,從而啟動執行緒!

相反,如果一個類的一個區域性物件的生命週期結束了,難道執行緒函式就不能用了嗎?

public是公共的,其它的類都可以訪問。 private是私有變數私有類,只有在本類中訪問,其它類是無權訪問的,除了宣告為友元。 project類是保護的類是介於public和private之間的,也就是繼承擁有project成員的類的子類可以訪問保護成員