头文件到底是干啥用的


题记:自己通过对工程的熟悉,理解的是头文件一般是对类的声明(成员函数与数据成员),或者对变量的声明,并没有具体实现某些函数,具体的函数要放在cpp文件中去实现。

一、头文件

通过查找资料,明白自己的理解大方向还是正确的,但是缺少细节的理解。

  • 头文件(.h)
    写类的声明(包括类里面的成员和方法的声明)、函数原型、#define常数等,但一 般来说不写出具体的实现。
  • 在写头文件时需要注意,在开头和结尾处必须按照如下样式加上预编译语句
#ifndef CIRCLE_H
#define CIRCLE_H

class Circle
{
private:
    double r;//半径
public:
    Circle();//构造函数
    Circle(double R);//构造函数
    double Area();//求面积函数
};

#endif

#pragma once

这个可以防止被多个文件同时包含,造成数据的混乱。
其中头文件可以细分为两类 系统头文件和自定义头文件。
1、系统头文件: 定义的都是系统级功能,正式因为有了它们,C++代码才可以在某种特定的系统上运行。如果你想在你的程序使用这些功能,就必须把相应的头文件包括到你的程序里来。
在#include指令里,系统头文件的文件名要放在尖括号里给出,这是告诉编译器:应该到“标准的”地点寻找这个文件:#include <stdio.h>
2、自定义头文件:在#include指令里,自定义头文件的文件名要放在双引号里给出:#include “fishc.h”

接口(函数的原型)和实现(函数体的定义)分开是对代码进行模块化的基本原则之一。
作为一个通用原则,应该把声明放在一个头文件里,把实现代码放在一个.cpp文件里。

在多个cpp文件中重复声明一个头文件,可能会导致错误,有一些方法可以避免这种重复声明的错误。
例如 只有在其他地方没有声明的时候才能在这里声明它。
使用if endif类似的语句

二、源文件

源文件主要是实现头文件中声明的函数的具体实现,需要注意的是要在cpp文件中包含需要实现的头文件,#include "Circle.h"。


命名空间其实就是由用户定义的范围,同一个命名空间里的东西只要在这个命名空间有独一无二的名字就行了。----命名空间需要详细的了解一下。

posted @ 2018-07-23 16:23  大海;;  阅读(1711)  评论(0编辑  收藏  举报