在C++中,静态成员包含静态数据成员和静态成员函数两部分,静态数据成员主要是实现同类的多个对象之间数据的共享,而静态成员函数的作用不是为了不同对象之间的沟通,而是为了能够使用静态数据成员。
关于它们两者之间的具体使用详述如下:
一、静态数据成员
静态数据成员是一种特殊的数据成员。它以关键字static开头。静态数据成员在内存中只占用一份空间。静态数据成员对所有的对象都是一样的,每一个对象都可以引用这个静态数据成员。并且静态数据成员和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。但是,它与其他数据成员还有以下不同:
1. 静态数据成员的定义
静态数据成员实际上是类域中的全局变量。所以,静态数据成员的定义(初始化)不应该被放在头文件中。
其定义方式与全局变量相同。举例如下:
//xxx.h文件
class base{
private:
static const int _i;//声明,标准c++支持有序类型在类体中初始化,但vc6不支持。
};
//xxx.cpp文件
const int base::_i=10;//定义(初始化)时不受private和protected访问限制.
注:不要试图在头文件中定义(初始化)静态数据成员。在大多数的情况下