zoukankan      html  css  js  c++  java
  • 类之静态成员以及常对象、常成员

    一、静态成员:static修饰,每个类只有一份拷贝,为所有该类的对象所共用。

    1.静态数据成员:

    类内声明、类外初始化。和全局变量一样,在数据段里分配内存。

    eg:

    class A{

      static int co;

    };

    int A::co=0;

    2.静态成员函数:

    1).静态成员函数专门用来存取类的静态成员,不可访问非静态成员,不可调用非静态成员函数,没有this指针。由static在类内声明,可以在类外定义,此时不需要static作为前缀。

    eg:

    class A{

      static int co;

      static int getCo() { return co; }

    }

    2).静态成员函数可以通过类名直接调用,也可以通过对象来调用。格式为:类名::静态成员函数; 对象.静态成员函数。

    二、常对象与常成员:const

    1.常对象:必须在定义时由构造函数初始化,只能调用常成员函数,且只能被常成员函数访问,生存期内不允许被修改。

    定义格式:类型 const 对象名;或者 const 类型 对象名。

    2.常数据成员:必须在构造函数的初始化列表里初始化,生存期内不允许被修改。

    定义格式:类型 const 数据成员名; 或者 const 类型 数据成员名。

    3.常成员函数:不能更新对象的数据成员(但可以访问),不能调用类中非常成员函数,在函数声明以及定义的时候都必须加上const关键字。

    定义格式:返回类型 成员函数名 (参数表) const。

    eg:

    class A{

      int x;

      int day() const;

    }

    int A::day() const

    {

      return x;

    }

    另外,const可用于函数重载。

    eg:void print()与void print() const这两个函数可以重载。

  • 相关阅读:
    PCB Genesis加邮票孔(邮票孔增加方向判断--左右上下)实现算法
    PCB SLOT槽孔数量计算方法,同CAM350孔数一致 实现方法
    从上到下打印二叉树II
    数据结构与算法(2)---顺序表
    栈的压入弹出序列
    包含min函数的栈
    顺时针打印矩阵
    数据结构与算法(1)--绪论
    反转链表
    数值的整数次方(快速幂)
  • 原文地址:https://www.cnblogs.com/jiu0821/p/4179309.html
Copyright © 2011-2022 走看看