跳至主要內容

C++ note

BradZhone大约 1 分钟C++C++

C++ note

1. 类静态成员函数&变量

  1. 静态成员变量
    1. static成员的所有者是类本身和对象,但是多个对象拥有一样的静态成员;

    2. 静态成员变量不能在类定义里边初始化,只能在class body外初始化。

    3. 静态成员仍然遵循public,private,protected访问准则。

    4. 静态成员函数没有this指针,它不能返回非静态成员,因为除了对象会调用它外,类本身也可以调用。

  2. 静态成员函数
    1. 出现在类体外的函数定义不能指定关键字static;
    2. 静态成员之间可以相互访问,包括静态成员函数访问静态成员变量和访问静态成员函数;
    3. 非静态成员函数可以任意地访问静态成员函数和静态成员变量;
    4. 静态成员函数不能访问非静态成员函数和非静态成员变量;
    5. 由于没有this指针的额外开销,因此静态成员函数与类的全局函数相比速度上会有少许的增长;
    6. 调用静态成员函数,可以用成员访问操作符(.)和(->)为一个类的对象或指向类对象的指针调用静态成员函数,或者"类名::静态成员函数名"的方式调用;
    7. 当同一类的所有对象使用一个量时,对于这个共用的量,可以用静态数据成员变量,这个变量对于同一类的所有的对象都取相同的值。