c++ 中的一次定义规则

在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.





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值