C++static类的特点

首先我们看一下这样一段程序:

#include<iostream>
using namespace std;
class MyClass
{
public:
	static int count;

};
int MyClass::count = 5;//必须有初值
int main() {
	MyClass a;
	MyClass b;
	a.count = 20;
	cout << b.count << endl;
}

这时候cout会输出什么呢?
如果答案是5或者0,那么你的答案和好多初学者是一样的,但并不是正确的,这正是static这个类的特殊性质。
在这里插入图片描述

static类成员不像普通的类数据成员,static类数据成员独立于一切类对象处在。static类数据成员是与类关联的,但不与该类定义的对象有任何关系。这句话什么意思?就是static不会想普通类数据成员一样每一个类对象都有一份,全部类对象是共享一个static类成员的,例如A类对象修改了static成员为1,那么B对象对应的static类对象成员的值也会是1

发布了16 篇原创文章 · 获赞 34 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/EIDoradol/article/details/104843820