- 编译阶段分配内存
- 所有对象共享数据
- 可以通过对象访问、通过类名访问
- 有权限控制
- 类内声明,类外初始化(通过类名访问是会不调用构造函数)
class Person
{
public:
Person()
{}
static int age;
}
int Person::age=0;
c++静态成员方法
- 可以访问静态成员变量,不可以访问普通成员变量
- 普通成员函数可以访问静态成员变量和普通成员变量
- 静态成员函数也有权限
- 可以通过对象访问,也可以通过类名进行访问
class Person
{
public:
Person()
{}
static void show()
{
cout<<age<<endl;
}
static int age;
}
int Person::age=10;
//通过类名访问
Person::show();
//通过对象访问
Person p1;
p1.show();
单例模式(静态的应用)
单例模式是一种常用的软件设计模式,在它的核心结构中只包含一个被称为单例模式。
构造方法私有化
成员变量私有化
-
拷贝构造函数私有化
class ChairMan { private: //构造函数 ChairMan(){ cout << "创建了" << endl; } //拷贝构造函数 ChairMan(const ChairMan& c) { } public: static ChairMan* getInstance() { return singleMan; } //指针在类内声明 private: static ChairMan* singleMan; }; //指针在类外初始化 ChairMan* ChairMan::singleMan = new ChairMan;