• C++静态成员的应用


    1. 当在类外部定义静态成员时,不能重复使用static关键字
    2. 静态成员函数不包含this指针(无论是显示还是隐式使用)
    3. 静态成员可以通过类对象进行访问,也可以通过类进行访问
    4. 静态成员不是由构造函数初始化的,一般来说不能在类的内部初始化静态成员
    5. 静态数据成员定义在任何函数之外,且只能被定义一次
    6. 在定义静态数据成员时,通过类限定符可以访问该静态数据成员,无论该静态数据成员是public、protected还是private,但是只能在定义时这样做
    7. 静态数据成员的类型可以是它所属于的类类型,而非静态数据成员只能声明它所属类的指针或引用
    1. #ifndef MAIN_H_INCLUDED
    2. #define MAIN_H_INCLUDED
    3. #include<iostream>
    4. usingnamespace std;
    5. classClassTest
    6. {
    7. public:
    8. staticint getValue();
    9. private:
    10. staticint value /*= 1*/;
    11. };
    12. #endif// MAIN_H_INCLUDED
    .cpp文件
    1. #include"main.h"
    2. /**< 对于静态数据成员一般不能在类内进行初始化 */
    3. /**< 若要在类内进行初始化,则要求静态成员必须是常量表达式 */
    4. intClassTest::value =2;//在定义时,尽管value是private类型,依然可以通过类限定符进行访问
    5. intClassTest::getValue()
    6. {
    7. return value;
    8. }
    9. int main()
    10. {
    11. ClassTest classTest;
    12. cout << classTest.getValue()<< endl;
    13. /**< 可以使用类名直接访问静态成员,在类外不能访问private成员 */
    14. //cout << ClassTest::value << endl;/**< 错误,因为value是private */
    15. cout <<ClassTest::getValue()<< endl;
    16. return0;
    17. }
     





  • 相关阅读:
    Codeforces 512D
    Codeforces Gym 101480C
    Codeforces 575A
    Codeforces Round #691 (Div. 2) 题解
    .net Core 中文等非英文文字html输出编码输出问题
    .net5 grpc服务在windows上的架设方法
    北大集训 2020 游记
    北大集训2020游记
    Tricks -「网络流」经典模型汇总
    Solution -「BJWC 2018」「洛谷 P4486」Kakuro
  • 原文地址:https://www.cnblogs.com/fengkang1008/p/4652247.html
Copyright © 2020-2023  润新知