《Thinking in C++, 2nd Edition》笔记-第四章(Data Abstraction)

头文件的使用

1 将什么放进头文件中?基本规则是“只声明”,也就是说,对于编译器只需要一些信息以产生代码或创建变量分配内存。因为在一个项目中,头文件也许会包含在几个处理单元中,而如果内存分配不止一个地方,则连接器会产生多重定义错误。
这个规则不是非常严格的。如果在头文件中定义“静态文件”的一段数据(只在文件内可见,比如const变量),在这个项目中将有这个数据的多个实例,编译器不会报错。基本上,不要在头文件中做在连接时会引起混淆的任何事情。
2 C 和C++ 都允许对函数重复声明,只要这些重复声明匹配,但决不允许对结构重复声明。在C++ 中,这个规则特别重要,因为,如果编译器允许对结构重复声明而且这两个重复声明又不一样,编译器将无法知道该使用哪一个。为了防止重复包含同一个头文件,可使用以下宏

#ifndef FOO_H_
#define FOO_H_
// Rest of header here ...
#endif // FOO_H_

 

#ifdef和#endif应该成对出现,#define定义一个宏,#undef则可以让预处理器取消宏的使用。


 在头文件中,不应该using指令,否则包含这个头文件的文件都会使用这个指定的命名空间,从而失去了命名空间的命名保护的意义。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值