
目录
1. 基本概念
静态成员:在说明前面加了static关键字的成员。
示例:
class CRectangle
{
private:
int w, h;
static int nTotalArea; //静态成员变量
static int nTotalNumber;
public:
CRectangle(int w_, int h_);
~CRectangle();
static void PrintTotal(); //静态成员函数
};
普通成员变量每个对象有各自的一份,而静态成员变量一共就一份,为所有对象共享。
sizef 运算符不会计算静态成员变量。
class CMyclass{
int n;
static int s;
};
注意:sizeof(CMyclass) = 4
普通成员变量每个对象有各自的一份,而静态成员变量一共就一份,为所有对象共享。
普通成员函数必须具体作用于某个对象,而静态成员函数并不具体作用于某个对象。
因此静态成员不需要通过对象就能访问。
静态成员变量本质上是全局变量,哪怕一个对象都不存在,类的静态成员变量也存在。
静态成员函数本质上是全局函数。
设置静态成员这种机制的目的是将和某些类紧密相关的全局变量和函数写到类里面,看上去像一个整体,易于维护和理解。
站在巨人的肩上
【1】北京大学信息技术学院《程序设计实习》
本文深入探讨了静态成员变量和静态成员函数的概念,解释了它们如何被所有对象共享,以及与普通成员的区别。静态成员变量类似于全局变量,即使没有对象实例也存在;静态成员函数如同全局函数,不依赖于特定对象即可调用。文章还提到了设置静态成员的目的,即为了更好地组织和维护与类相关的全局变量和函数。
2358





