昨天面试碰到一道const题目:

class A

{

public:

const A* f(const A* pSrc,A* const pDst,int v=2,...) const throw();

}a;

请按顺序指出每个const的意义:

const 在c中的意思是一个不可更改的普通变量,c 中const用法主要有定义常量修饰函数参数,修饰返回值等3个作用;c++中const 还能修饰函数定义体,定义类中某个函数为恒态函数,被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。const 声明常量时必须同时初始化

const throw()在这里表示无论如何此成员函数不抛出异常。

如此一来:const A* pSrc表示指针指向的值不可更改,A* const pDst表示指针不可更改。const A* f()表示f函数为恒态函数