码迷,mamicode.com
首页 > 编程语言 > 详细

C++学习笔记-const和static

时间:2014-11-12 00:30:32      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   sp   strong   数据   div   on   

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;	//error
cout << 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;	//ok
cout << pd[2];

 pd2的值不可改变,只能指向最初赋给它的地址,但pd2可以用来改变它所指向的数据值。

<<effective C++>>上有个好记的方法:const在*号左边修饰的是指针所指的内容;const在*号右边修饰的是指针。
简单记就是:左内容,右指针。
也可以这样理解:先忽略类型名,然后看const离哪个近,就修饰谁。
如:const [int] *p; //先去掉int,这时const 修饰*p, p是指针,*p是指针指向的对象,不可变。

3、const与引用

double value = 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

标签:style   blog   color   使用   sp   strong   数据   div   on   

原文地址:http://www.cnblogs.com/cmranger/p/4090796.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!