1)关于变量的作用于问题
我们知道一般头文件包含类的定义,extern变量声明和和函数声明,但是const定义的变量也可以放在头文件中。这是一个例外,因为const定义的变量与不带const定义的变量存在着很大区别,例如:我们定义(假设val和cval都定义在函数外内部):
点击(此处)折叠或打开
-
int val = 0;
- int const cval = 0;
2)关于引用的赋值问题
首先给出两段代码,如下:
点击(此处)折叠或打开
-
double dval = 3.14; double dval = 3.14;
- const int& cval = dval; int& val = dval;
点击(此处)折叠或打开
-
double dval = 3.14;
-
int tmp = dval;
- const int& cval = tmp;
3)关于函数的重载
我们知道C++中,函数重载是通过编译器重写函数名字来实现的(c++中重写函数也会将参数考虑进去,例如类型或大小),在实现的过程中也会将const作为类型进行考虑,重写函数名字。这个很好理解,比如void f(int)和void f(const int)。一个函数类型为(void)(*)(int),而另一个函数类型为(void)(*)(const int),这样自然定义的是两个不同类型的变量。这个常常用在配对函
数中,例如重载[]操作符时。
4)关于成员函数
有如下简单代码:
点击(此处)折叠或打开
-
class A{
-
public:
- int get()const
- {
-
//++val; //error
- return val;
-
}
-
private:
-
int val;
- };
此文出处:http://blog.chinaunix.net/uid-28311809-id-4038614.html