最近在看<<C++ primer>>.
零零碎碎随手记录,有不正确的地方敬请指正.
对const变量有了一个基础的理解.记录一下.
const类型的变量可以分为两种:
一种是用常量初始化,在编译时就可以确定值的,比如 const float PI = 3.14;
另一中是用变量初始化,运行时才能确定值的,比如 const int test = func();
头文件通常只能包含变量和函数的声明,而不包含定义.
但有3种状况例外:
1.class的定义,可以在头文件中
2.inline函数的定义,可以在头文件中.
3.就要说到刚才提到的const变量.只有以常量初始化的const类型变量,可以放在头文件中.
头文件符合这3种情况,就不会出现一些典型的C++语法盲人常出现的低级错误.
(比如以下这个问题,就是我之前弄不明白const变量的情况下所提问的 http://topic.csdn.net/u/20120316/03/4a41eafd-ae55-4589-b1a3-1352c2015464.html )
数组的定义和初始化需要一个表示长度的常量.
比如
const int SIZE = 3;
这个 SIZE 就可以用于定义数组 int arr[SIZE];
int arr[SIZE+1];这样也是可以的,因为 SIZE+1 也是在编译时候 就可以确定值.
但是这样
const int SIZE2 = GetSize();
就不可用 int arr[SIZE2]; 这样的语句来定义数组.