static局部變量確保不遲於在程序執行流程第一次經過該對象的定義語句時進行初始化
這種對象一旦被創建,在程序結束前不會被撤銷。在該函數被多次調用的過程中,靜態局部對象會持續存在並保存它的值。
#include<iostream><><assert.h> size_t ctr= ++(size_t i=; i!=; ++<<count_calls()<<
本文地址:http://www.cnblogs.com/archimedes/p/cpp-static.html,轉載請注明源地址。
全局對象會破壞封裝,對象需要支持特定類抽象的實現,類可以定義類靜態成員,不像普通的數據成員,static數據成員獨立於該類的任意對象而存在。
1、使用類的static成員的優點:
2、定義static成員
考慮一個銀行賬戶類,每個賬戶的利率總是相同的,代碼如下:
applyint() {amount+=amount* rate() { rate(
3、使用類的static成員
可以通過作用於操作符從類直接調用static成員,或者通過對象、引用或指向該類類型對象的指針間接調用
*ac2=&==ac2->=Account::rate();
像其他的成員函數一樣,類成員函數可以不用作用域操作符來引用類的static成員:
applyint(){ amount+=amount*
static成員函數
static數據成員
static數據成員可以聲明為任意類型,必須在類定義體的外部定義(正好一次),
1、特殊的整型const static成員
一般而言,類的static成員,不能在類的定義體中初始化,通常在定義時就初始化,但是一個例外是:只要初始化式是一個常量表達式,整型const static數據成員就可以在類的定義體中進行初始化:
rate() { rate( period=
2、static成員不是類對象的組成部分
static數據成員可以用作默認實參:
= bkground=