1. 程式人生 > 其它 >C++ 類內靜態成員

C++ 類內靜態成員

技術標籤:C++

在程式執行時分配,非靜態成員在例項化時分配

作用域在類內,通過發訊息來引用

類外初始化,不能通過初始化列表來初始化
int ::num=0;

所有成員共享靜態成員空間(只分配一次)

非靜態方法只屬於物件
靜態成員方法屬於物件和類,只能訪問靜態成員

類內類外引用(不能破壞封裝性)
1、物件引用:
物件.靜態成員變數
2、類引用:
類::靜態變數

#include<iostream>
#include<string>
using namespace std;

class people
{
public:
protected:
	string name;
//複雜型別 short age; private: static int num;//統計people例項化次數 //靜態成員在程式執行時分配,不在此初始化 //靜態成員,屬於物件,屬於類 public: people() { num++; } //非靜態方法,只屬於物件 int getnum() { return num; } //靜態方法,屬於物件,屬於類 static int givenum() { //cout<<age<<endl;報錯,只能訪問靜態變數 //getnum();報錯,非靜態方法,只能物件訪問 return num; } };
//初始化 int people::num=0; int main() { people p1,p2,p3;//分配非靜態空間 cout<<p1.getnum()<<endl; cout<<people::givenum()<<endl;//呼叫靜態方法 return 0; }

結果
3
3