靜態成員和靜態成員函式
普通成員變數每個物件有各自的乙份,而靜態成員變數一共就乙份,為所有物件共享。靜態成員物件不需要通過物件就能訪問
class crectangle;
crectangle::crectangle(int i,int j)
crectangle::~crectangle()
int crectangle::ntotalarea=0;
int crectangle::ntotalnumber=0;
void crectangle::printtotal()
輸出:靜態成員函式不能訪問非靜態成員變數因為靜態成員函式不是作用於物件,假設是訪問非靜態成員變數w,不知道是哪個物件的。
靜態成員函式也不能訪問非靜態成員函式,因為非靜態函式可以訪問非靜態成員,所以不可訪問。
另需要考慮複製建構函式問題,當引數為乙個物件或者返回值為乙個物件,異或直接構造初始化 class a(b);這些會導致生成臨時變數,矩形數量會增多。
crectangle::crectangle(const crectangle & a)
靜態成員和靜態成員函式
靜態成員函式的特點 1.static資料成員在類內的內部宣告,但只能在類的外部定義,在類的外部不能指定static,在類的定義時候驚醒初始化 2.static資料成員只能在課的外部進行初始化 特例 當整形const static資料成員被常量表示式初始化,就可以在類內進行初始化,但還需要在外部進行定...
靜態成員變數 和 靜態成員函式
資料成員可以分靜態變數 非靜態變數兩種.靜態成員 靜態類中的成員加入static修飾符,即是靜態成員.可以直接使用類名 靜態成員名訪問此靜態成員,因為靜態成員存在於記憶體,非靜態成員需要例項化才會分配記憶體,所以靜態成員不能訪問非靜態的成員.因為靜態成員存在於記憶體,所以非靜態成員可以直接訪問類中靜...
靜態成員變數和靜態成員函式
我們學到的類物件的成員變數一般都是這個物件專屬,不能為其他物件所共有。然而在實際程式設計中我們需要統計物件的數量等問題,所以就必須設定乙個類的物件所共有的變數,就是靜態成員變數。首先通過乙個簡單的例程 說明靜態成員如何使用。includeusing namespace std class a vir...