• C++程序设计方法3:类中的静态成员


    在类型前面加static修饰的数据成员,是隶属于类的,成为类的静态数据成员,也称为“类的变量”

    静态数据成员被该类的所有对象共享(即所有对象中的这个数据域实际上处于同一个内存位置)

    静态数据要在实现文件中赋初值,格式为:

    Type ClassName::static_var = Value;

    返回值类型前面加static修饰的成员函数,称为静态成员函数,它们不能调用非静态成员函数;

    类的静态成员(数据,函数)既可以通过对象来访问,也可以通过类名字类访问;

    #include <iostream>
    using namespace std;
    
    class Test
    {
        static int count;
    public:
        Test() { count++; }
        ~Test() { count--; }
        static int how_many() { return count; }
    };
    
    int Test::count = 0;
    
    void print(Test t)
    {
        cout << "tests:" << t.how_many() << endl;
    }
    
    int main()
    {
        Test t1;
        cout << "test#" << Test::how_many() << endl;
        Test t2 = t1;
        cout << "test#" << Test::how_many() << endl;
        print(t2);
        cout << "test#" << t1.how_many() << "," << t2.how_many() << endl;
       return 0; }

    类中的常量成员

    使用const修饰的数据成员,称为类的常量数据成员,在对象的整个生命周期内不可以更改;

    常量数据成员只能在构造函数的初始化列表中被设置,不允许在函数中通过赋值来设置;

    若用const修饰成员函数,则该成员函数在实现时不能修改类的数据成员, 即函数体中不能有改变对象状态的语句;

    若对象被定义为常量,则它只能调用以const修饰的成员函数,其他成员函数不允许调用;

    怕什么真理无穷,进一寸有一寸的欢喜。---胡适
  • 相关阅读:
    day06 数据类型的内置方法(数字类型和字符串)
    day 05 流程控制(if、while、for)
    day04 交互、格式化输出、运算符
    day03 python运行、变量、注释、内存管理、数据类型
    day02 编程语言
    动手实现hashmap
    顺时针打印矩阵
    反转链表-用二重指针解决
    面试经验--携程测试开发工程师--一面
    linus提到过的单链表删除节点算法
  • 原文地址:https://www.cnblogs.com/hujianglang/p/6629320.html
Copyright © 2020-2023  润新知