如何使用c++中常量的特性

  介绍

这篇文章主要讲解了如何使用c++中常量的特性,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

1:修饰变量,说明该变量不可以被改变;
2:修饰指针,分为只想常量的指针和自身是常量的指针
3:修饰引用,指向常量的引用,用于修饰形参,即避免了拷贝,有避免了函数对值的修改。
4:修改成员函数:说明该成员函数内不能修改成员变量。
5:指针与引用

<强>

以下是对各种情况的示例:

//注:1:const修饰的引用cj的值且引用的对象无法修改无法修改,但是引用的我是可修改的   # include & lt; iostream>      使用名称空间性病;      int main () {   int i=1;   const int, cj=我;      cout & lt; & lt;“cj:“;& lt; & lt; cj<& lt;endl; (√)         我=2;   cout & lt; & lt;“cj:“;& lt; & lt; cj<& lt;endl; (√)      cj=3;   cout & lt; & lt;“cj:“;& lt; & lt; cj<& lt;endl; (×)      int=9;   cj=一个;(×)      返回0;   }            错误提示://主要代码。cpp:函数的int main () & # 39;://主要代码。cpp:福音15:4:错误:转让只读引用“cj # 39;   cj=3;   ^//主要代码。cpp:第4节:错误:转让只读引用“cj # 39;   cj=一个;   ^   sandbox>退出状态0 //注:常量引用,本身也要是常量才行:      # include & lt; iostream>      使用名称空间性病;      int main () {   const int i=4;      const int, ck=我;//正确,常量对象绑定到const引用   cout<& lt;“ck=? lt; & lt; ck<& lt; endl;      const int b=5;      int, r=b;//错误。      返回0;   }//主要代码。cpp:函数的int main () & # 39;://主要代码。cpp: 13:14:初始化错误:无效的参考类型的int& & # 39;从表达式的类型的常量int # 39;   int, r=b;//错误。   ^   sandbox>退出状态0
//注:const的隐式转换:
  
  # include & lt; iostream>
  
  使用名称空间性病;
  
  int main () {
  双b=2.14;
  const int, a=b;//会进行如下转换://int temp=b;//const int,=temp;//所以,给b进行赋值,一个可能
  cout<& lt;“=? lt; & lt; a<& lt; endl;
  返回0;
  }
  
  运行结果:
  一个=2
  sandbox>退出状态0 
//注:修饰成员函数_1:      上课日期   {   私人:   int m_year;   int m_month;   int m_day;   公众:   int GetDay(空白)常量   {   m_day=7;   返回m_day;//修饰的情况下,不能对成员变量进行修改;   }   };//无效GetDay(空白)常量//{//返回m_day;//}      int main () {   双b=2.14;   const int, a=b;//会进行如下转换://int temp=b;//const int,=temp;//所以,给b进行赋值,一个可能   cout<& lt;“=? lt; & lt; a<& lt; endl;   返回0;   }         错误提示://主要代码。cpp:成员函数的int日期::GetDay () const # 39;://主要代码。cpp:十六:错误:分配成员的日期::m_day& # 39;在只读对象   m_day=7;   ^   sandbox>退出状态0 //注:修饰函数_2      # include & lt; iostream>      使用名称空间性病;            上课日期   {   私人:   int m_year;   int m_month;   可变的int m_day;//通过被可变的修改的成员变量,就可以被修改了   公众:   int GetDay(空白)常量   {   m_day=7;   返回m_day;   }   };//无效GetDay(空白)常量//{//返回m_day;//}      int main () {   双b=2.14;   const int, a=b;//会进行如下转换://int temp=b;//const int,=temp;//所以,给b进行赋值,一个可能   cout<& lt;“=? lt; & lt; a<& lt; endl;   返回0;   }         运行结果:   一个=2   sandbox>退出状态0 //注:const修饰的指针         # include & lt; iostream>      使用名称空间性病;         int main () {   const int * p=零;//这两种修饰的是* p指向的值//整数常量* p=零;      int=9;   p=,,//修改了p指向的地址,任然没有出的错   cout<& lt;“* p=? lt; & lt; *术;& lt; endl<& lt;“p=? lt; & lt;术中;& lt; endl;         int c=10;   int * const b=, c;//这两种修饰的是p指向的地址   c=45;   * b=c;//修改了b指向的值,任然不会出的错   cout<& lt;“* b=? lt; & lt; * b<& lt; endl

如何使用c++中常量的特性