现在的位置: 首页 > 综合 > 正文

c++ 中的一次定义规则

2013年05月27日 ⁄ 综合 ⁄ 共 479字 ⁄ 字号 评论关闭

在c++ 中,函数定义和变量定义都遵从“一次定义规则”:就是定义只能有一份,但是可以有多个声明;而inline函数和const常量则是此规则的例外:inline函数可以在每个文件中都有一份相同的实现(一般被置于头文中),而const常量则是作用域被限制在它所在的文件中,一出文件就不可见.

例:

// .h文件

const int seq_cnt = 6;
const vector<int>*  (seq_array[seq_cnt])(int);

这并不十分正确,因为它会被解读为seq_array的定义而非声明,如果在seq_array定义式前加上关键词extern,它便成为了一个声明:

extern const vector<int>*  (seq_array[seq_cnt])(int);

前面我们不是说道 const常量则是作用域被限制在它所在的文件中,一出文件就不可见 么,即const常量不是可以放在.h文件中么? 你要清楚,seq_array是一个指向const object的指针,并非const object本身,而seq_cnt才是const object.

抱歉!评论已关闭.