首页 > 代码库 > C++学习笔记-const和static
C++学习笔记-const和static
const
1、使用const来定义常量
const int num = 10; //应该在声明时进行初始化,否则该常量的值是不确定的,而且无法修改
2、const与指针
指向常量的指针(const修饰的是指针指向的内容)
//指向常量的指针double rates[5] = {88.9, 100.12, 59.2, 111.1, 23.2};const double *pd = rates;cout << pd[2] << "\n";pd[2] = 67.99; //errorcout << pd[2];
pd为指向常量的指针,
不能使用pd来修改它指向的数值,但可以让pd指向其他的地址。通常把指向常量的指针用作函数参量。
指针常量(const 修饰指针)
//指针常量double rates[5] = {88.9, 100.12, 59.2, 111.1, 23.2};cout << pd[2] << "\n";double * const pd2 = rates;pd2[2] = 67.99; //okcout << pd[2];
pd2的值不可改变,只能指向最初赋给它的地址,但pd2可以用来改变它所指向的数据值。
<<effective C++>>上有个好记的方法:const在*号左边修饰的是指针所指的内容;const在*号右边修饰的是指针。
简单记就是:左内容,右指针。
也可以这样理解:先忽略类型名,然后看const离哪个近,就修饰谁。
如:const [int] *p; //先去掉int,这时const 修饰*p, p是指针,*p是指针指向的对象,不可变。
3、const与引用
double value = http://www.mamicode.com/100;
const double & v = value;
不能修改const引用所指向的内容
4、const与类成员
class StaticAndConstTest{public: StaticAndConstTest(int _num = 100); ~StaticAndConstTest(void); //类的const 成员常量 必须在构造方法中使用初始化列表来初始化 const int num;};StaticAndConstTest::StaticAndConstTest(int _num) : num(_num){}
const成员函数
class StaticAndConstTest{public: StaticAndConstTest(int _num = 100); ~StaticAndConstTest(void); //const成员函数 void show() const; //类的const 成员 必须在构造方法中使用初始化列表来初始化 const int num;};void StaticAndConstTest::show() const{ std::cout << num;}
const成员函数不能修改调用对象,只要类方法不修改调用对象,就应将其声明为const。
C++学习笔记-const和static
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。