(C++)const 常量类型

常类型是指用类型修饰符const声明的类型,常类型的变量或者类型是不能被更新的,所以,定义或声明常类型的时候一定要进行初始化。
一:常类型。
 说明:有两种定义的格式,其效果是一样的,对象初始化后是不能再被更新的(常对象)。
 定义格式:
  1.<类名>const<对象名>    2: const <类名> <对象名>
 例子: 
  class Cone{
   public:
    Cone(int a,int b){sum=a+b}
   private:
    int sum;
  };
  const Cone one(3,4);
  Cone const two(3,4);
二:常指针和常引用
 说明:有三种定义的方式,不同的方式意义不同,请注意
 定义格式:
  1.const <指针类型> *<指针>      声明一个指向常量的指针,常量本身不能改变,但是指针指向的地址可以改变。
  2.<指针类型> const *<指针>      声明一个指针常量或者常指针,指针本身指向地址是不能改变的,但是指向地址的值可以改变。
  3.const <指针类型> const *<指针>  这种方式大家应该很清楚了,就是上面两个的集合体,指针指向的地址不能改变,同时指向的值也不能改变。
三:常参数
 说明:不累述了,例子奉上
 例子:
  class Cone{
  public:
   Cone(const int *p,int n){
    sum=0;
    for(int i=0;i<n;i++){
     sum+=*(p+i);
    }
   cout<<sum<<endl;
   }
  private:
   int sum;
  };
  void main()
  {
   int array[6]={1,2,3,4,5,6};
   Cone one(array,6);
  }
四:常成员函数
 说明:顾名思义,用const声明的成员函数称为“常成员函数”,注意,只有常成员函数才有资格操作常量和常对象。
 格式:<类型说明符> <函数名>(<参数表>) const;     const是在函数后声明的类型修饰符,是函数的一个组成部分,所以,函数实现部分也要注意带上const关键字
 例子:
  class Cone{
  public:
    Cone(int a,int b){x=a;y=b;}
    void print(){
     cout<<"没有使用常量成员函数"<<endl;
     cout<<x+y<<endl;
    }
    void print() const{
     cout<<"使用了常量成员函数"<<endl;
     cout<<x+y<<endl;
    }
  private:
    int x, y;
  };
  void main(){
   Cone one(3,4);
   one.print();
   const Cone two(3,4);
   two.print();
  }
五:常数据成员
 说明:有常成员函数自然就有常数据成员啦。由于必须初始化而且又不能更新,所以声明const数据成员时只能通过成员初始化列表来实现构造函数对数据成员的初始化。不明白?看例子。
 例子:
  class COne
  {
    public:
   COne(int a):x(a),r(x){ }  // 常数据成员的初始化
   void print();,必须  
   const int &r;           // 引用类型的常数据成员
    private:
   const int x;           // 常数据成员
   static const int y;          // 静态常数据成员
  };
  const int COne::y = 10;       // 静态数据成员的初始化
  void COne::print()
  {    cout<<"x =·1 "<<x<<", y = "<<y<<", r = "<<r<<endl;  }
  void main()
  {
   COne one(100);
   one.print();
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值