static数据成员理解:
1.在类内进行声明
2.在类外初始化(因为它不属于类对象,所以它应该在对象创建之前就存在了,所以在类外初始化正好)
3.所有该类的对象都共享一个static数据成员。
#include "stdafx.h"
#include <iostream>
#include <algorithm>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
class numbered{
public:
numbered()
{
//类内数据成员可以使用static成员
//因为static数据成员被所有对象共享!!!
mysn=seq++;
}
int mysn;
private:
//静态数据成员类内声明
static int seq;
};
void f(numbered s)
{
cout <<s.mysn<<endl;
}
//静态数据成员类外初始化
int numbered::seq=0;
int main(){
numbered a,b=a,c=b;
f(a);f(b);f(c);
system("pause");
return 0;
}