C++ const关键字 总结
2012-11-01 16:56
609 查看
1、const修饰变量
const修饰普通变量只需掌握两点:
(1)声明时必须进行初始化;
(2)变量的值不能再改变。
如代码:
(1)const char* p1 = "111p1";(*p1是常量)
(2)char* const p2 = "222p2";(p2是常量)
const char* p1 = "111p1";
char* const p2 = "222p2";
p1++;//right
p2++;// error:p2 is const
*p1 = 'a'; //error :*p1 is const
const修饰引用类型变量:
2、const修饰函数参数
有四种情况:
(1)void fun1(const int i);//传递过来的参数在函数内不可以改变(因i是形参,它即使改变也不会改变实参的值)
(2)void fun2(const char* p);//指针p所指的内容为常量不可变,如*p='a',则出错。
(3)void fun3(char* const p);//指针p本身不可改变(形参,影响不到实参的值)
(4)void fun4(const int& i);//引用i的值不能改变
3、const修饰类成员变量与成员函数
(1)对于C++ const变量的成员变量,只能在构造函数里使用初始化成员列表来初始化,试图在构造函数体内进行初始化const成员变量会引起编译错误。
(2)const修饰的成员函数不会修改类成员变量。
如:char* getName() const;
有关const关键字还有更多的方面。请参见:http://www.cprogramming.com/tutorial/const_correctness.html
const修饰普通变量只需掌握两点:
(1)声明时必须进行初始化;
(2)变量的值不能再改变。
如代码:
const int i; //error: uninitialized const 'i' const int j =0; j = 1; //error: assignment of read-only variable 'j'const修饰指针变量总结出来两种情况:
(1)const char* p1 = "111p1";(*p1是常量)
(2)char* const p2 = "222p2";(p2是常量)
const char* p1 = "111p1";
char* const p2 = "222p2";
p1++;//right
p2++;// error:p2 is const
*p1 = 'a'; //error :*p1 is const
const修饰引用类型变量:
const int ci = 1024; const int &r1 = ci; // ok: both reference and underlying object are const r1 = 42; // error: r1 is a reference to const int &r2 = ci; // error: non const reference to a const object
2、const修饰函数参数
有四种情况:
(1)void fun1(const int i);//传递过来的参数在函数内不可以改变(因i是形参,它即使改变也不会改变实参的值)
(2)void fun2(const char* p);//指针p所指的内容为常量不可变,如*p='a',则出错。
(3)void fun3(char* const p);//指针p本身不可改变(形参,影响不到实参的值)
(4)void fun4(const int& i);//引用i的值不能改变
3、const修饰类成员变量与成员函数
(1)对于C++ const变量的成员变量,只能在构造函数里使用初始化成员列表来初始化,试图在构造函数体内进行初始化const成员变量会引起编译错误。
(2)const修饰的成员函数不会修改类成员变量。
如:char* getName() const;
有关const关键字还有更多的方面。请参见:http://www.cprogramming.com/tutorial/const_correctness.html
相关文章推荐
- c++中const关键字全面总结
- C/C++中static和const关键字的作用总结
- 【C++基础】关键字const的总结
- c++ --> const关键字总结
- C++中const关键字的使用方法,烦透了一遍一遍的搜,总结一下,加深印象!!!
- C++知识点总结(上):指针和引用,static关键字,const关键字,malloc\free和new\delete的区别等
- C/C++ const关键字用法总结
- C/C++中static,const,inline三种关键字详细总结
- 关于C++中const关键字总结
- C/C++中static,const,inline三种关键字详细总结
- c++中const关键字总结
- C/C++中static,const,inline三种关键字详细总结
- C++中const和static关键字的作用总结
- C++ const 关键字的简单总结
- C/C++基础:const关键字总结
- C/C++中static,const,inline三种关键字详细总结
- C++ const关键字的总结
- C/C++中static,const,inline三种关键字的总结(参照网络)
- C/C++ 中const关键字总结
- C++和C语言const区别关键字总结