头文件

头文件中的内容

头文件一般包含类的定义、extern变量的声明和函数的声明。

切记:头文件中不要包含变量定义,否则极可能导致重复定义的连接错误。
例如下列定义就不推荐包含在头文件中:
extern double val1 = 0.1;//定义
double val2;//定义
对于头文件不应该含有定义这一规则,有三个例外:头文件可以定义类、值在编译时
就已经知道的const对象和inline函数。之所以需要在头文件中定义这三类例外,是因为编译器需要他们
的定义(而不是声明)来产生代码。例如:为了产生能定义或使用类的对象的代码,编译器需要知道组成该类
的数据成员。
对于const变量需要区分,如果const变量不是用常量表达式初始化,它就不应该在头文件中定义,
它应该在一个源文件中定义并初始化,应在头文件中为它添加extern声明,以使其能被多个文件共享。
当const变量是通过常量表达式初始化时,一般都把这样的const变量定义在头文件中。例如下列使用代码:
//A.h
extern const int var;
//A.CPP
#include "A.h"
const int var = sqrt(2.0);
//Another.h

const int var = 2;

头文件中的库包含

头文件中包含标准库引用时,应当使用完全限定的标准库名字而不使用using 声明。因为如果在头文件中使用using声明,相当于包含该头文件的每个程序都放置了统一using,不论该程序是否需要该using声明。下例中头文件推荐使用B.h的写法

//A.h

#include <string>

using std::string;//err  在头文件中使用using 声明

class A

{

private:

 string var;

 //........

};


// B.h

#include <string>

class A

{

private:

 std::string var;

 //........

};


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值