通过将某个函数成员声明为static,我们将使该函数独立于本类的任何具体对象。从静态函数内引用类成员,必须使用限定名进行(就像使用普通函数访问公有数据成员那样)。
静态成员函数的优点是:即使本类的任何对象都不存在,它们也能存在并被调用。这种情况下,静态成员函数只能使用静态数据成员,因为后者是唯一存在的数据成员。因此,即使我们不能肯定是否有类对象存在,也可以调用类的静态函数成员来检查静态数据成员。这样,我们即可用静态成员函数来确定本类的对象是否已经创建,或者实际创建的数量。
例:static void Afun(int n);
可以通过:
① aBox.Afun(10); //对象调用
②CBox::Afun(10); //类+作用域调用