介绍
这篇文章主要讲解了如何使用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++中常量的特性