• 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修饰的成员函数,其他成员函数不允许调用;

    怕什么真理无穷,进一寸有一寸的欢喜。---胡适
  • 相关阅读:
    EF Core 执行SQL语句和存储过程
    SQL优化之SELECT COUNT(*)
    SQL优化之SQL 进阶技巧(下)
    SQL优化之SQL 进阶技巧(上)
    旅游攻略:重庆红色之旅
    ASP.NET Core在CentOS上的最小化部署实践
    Windows平台部署Asp.Net Core应用
    kali 免杀工具shellter安装以及使用
    Ubuntu Server18.04配置静态IP
    Centos7系统配置静态IP
  • 原文地址:https://www.cnblogs.com/hujianglang/p/6629320.html
Copyright © 2020-2023  润新知