程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C/C++ 初學簡單筆記 —2—

C/C++ 初學簡單筆記 —2—

編輯:C++入門知識

1. 靜態成員

靜態成員屬於類所有,不屬於對象。但為所有對象所共享。

因為靜態成員不屬於對象所有,所以在對象初始化的時候,不會為靜態成員分配內存空間。

故在類中,靜態成員只是做了一個引用性的聲明,必須在類外進行正式的聲明。

聲明格式: 類型 類名::靜態成員名; // 也可以賦初始值,對於靜態成員,系統會自動賦予初始值。
如:
class A
{
private:
static int id;
}

int A::id;

訪問: A::id


2. 靜態方法,同樣為類所有,為對象所共享,類可以直接調用,而不必聲明對象來調用

調用格式: 類名::方法

注意,在靜態方法中,可以訪問靜態成員和靜態成員方法。但是不能訪問非靜態成員變量,

因為此時對象還沒有生成,何來的成員變量?

如果要在靜態方法中使用成員變量,可以使用別名。
如:
static void display(類名 &對象別名p)
{p.xx=...};


3. 類的友元。

C++為解決效率的需要,提出了一個友元的概念,

只要把某個類外函數聲明為該類的友元,就可以直接訪問類中的任何成員(public,protect,private)


1)將普通函數聲明為類的友元

2)將某個類的成員函數聲明為本類的友元函數

3)將某個類聲明為本類的友元類


友元都聲明在類中,只是說明友元函數有權訪問類的所有成員,但並不表明友元函數和友元類屬於該類的成員。

友元聲明不受權限的限制,聲明在哪一行都行。

友元用friend修飾,一般使用對象的別名作為參數


4. 類的嵌套

要有初始化列表,初始化順序跟初始化列表無關,只於對象聲明的順序有關。

如果沒有寫,則調用默認的構造函數。

如:
class C
{
private:
A a;
B b; // A,B 都是類名
public:
C(int a, int b, int c):a(a),b(b) {...}; // 調用 A(int i)構造方法初始化 a

}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved