// myobj.h
#pragma once
#include using namespace std;
class cmyobj
~cmyobj()
};
// account.h
#ifndef account_h
#define account_h
#include class cmyobj;
class account
account(const std::string &s, double amt) :
owner(s), amount(amt)
public:
static void releasemyobj();
private:
std::string owner;
double amount = 0.0;
static cmyobj* m_pstaticmyobj;
static cmyobj* initmyobj();
};#endif
// account.cpp
#include "account.h"
#include "myobj.h"
#include #include using namespace std;
cmyobj* account::m_pstaticmyobj = initmyobj();
cmyobj* account::initmyobj()
void account::releasemyobj()
}
// staticobjectdemo.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
#include "account.h"
#include // namespace for using cout.
using namespace std;
/* 靜態類成員變數演示 */
int _tmain(int argc, _tchar* ar**)
編譯環境:microsoft visual c++ 2013
程式輸出:
[account::initmyobj()]
[cmyobj::cmyobj()]
int __cdecl wmain(int,wchar_t *)
cmyobj::~cmyobj()
分析說明:c++類中,對於靜態類成員變數,會在定義靜態類成員變數時生成物件(如果會生成物件的話),對於本例,在下面的語句中,生成了物件。
// account.cpp
cmyobj* account::m_pstaticmyobj = initmyobj();
類中的靜態成員變數 靜態成員函式
類中的靜態成員變數 靜態成員函式?1 類中的靜態成員變數 靜態成員變數屬於整個類,不屬於某個特定的物件,因此無論建立了多少個物件,所有物件都共享類中的靜態成員變數。靜態成員變數必須在類內宣告,類外初始化。2 類中的靜態成員函式 靜態成員函式也是屬於類本身,而不屬於某個特定的物件。靜態成員函式與普通成...
類的靜態成員變數
通過物件名能夠訪問public成員變數,每個物件的成員變數都是專屬的,成員變數不能再物件之間共享,先來看乙個例子 include class test test intgetcount test gtest intmain 結果 sice sice g a.c sice sice a.out cou...
類的靜態成員變數
新需求 統計在程式執行期間某個類的物件數目 保證程式的安全性 不能使用全域性變數 隨時可以獲取當前物件的數目 incldue class test test intgetcount test gtest intmain 輸出結果為 1 1 1,沒有達到使用者需求!每個成員都擁有乙個變數,不是公共的,...