C++特殊限定符(1)--static

 C++特殊限定符(1)--static

 

      当static来修饰类数据成员时,这个类的所有对象都可以访问它。因为值在内存中持续存在,它可以被对象有效共享。这意味着当一个对象改变static数据成员的值时,就改变了所有对象的这个数据成员的值。

定义一个类:
class NetComputer
{
private:
     static int number_logged_on;
public:
     NetComputer();
     static void showNumber();
     void showAddress();
}
 

静态数据成员。
静态数据成员的特点如下:
(1)被所有的类对象共享。
(2)在类定义中由关键字static声明。
(3)在成员函数外初始化(不需要使用static,但需要使用类名和作用域解析操作符)。
(4)可以通过调用任何对象的普通成员函数对其访问及修改。
(5)可以通过调用类(不是对象)的静态成员函数对其访问及修改。
(6)可以指定访问权限为public或private(或其他)。

静态函数成员。
用static说明的成员函数是用来操作静态数据的。其特点为:
(1)在类定义中,在函数声明前使用static关键字来声明函数为静态。
(2)不需要使用对象及点运算符来调用。
(3)在函数头中,不使用static关键字。
(4)不允许访问非静态数据成员及函数成员。
(5)程序中不存在类对象时,也可以被调用。

说明:
(1)static void showNumber();

(2)典型的调用方式是使用类名及作用域解析操作符,也可以使用对象和点操作符。
    NetComputer::showNumber();
(3)例如 void NetComputer::showNumber(){……};

(4)如果一个函数想要修改静态数据及非静态数据,这个函数就不能用static来说明。这意味着普通成员函数可以用来修改静态数据。

(5)如NetComputer::showNumber();
    静态成员函数不需要任何对象,因此,可以在没有任何对象的情况下来调用。

你可能感兴趣的:(C++,c,Class)