#include<>一般用于包含系统头文件,诸如stdlib.h、stdio.h、iostream等;
类库目录下查找失败,编译器会终止查找,直接报错:No such file or directory.
#include""一般用于包含自定义头文件,比如我们自定义的test.h、declare.h等。
#include"":默认从项目当前目录查找头文件,即项目工程文件(*.vcxproj)所在的目录。查找失败,再从项目配置的头文件引用目录查找头文件。如果项目配置的头文件引用目录中仍然查找失败,再从系统类库目录里查找头文件,因此,对于系统库头文件,#include<>和#include""的作用一样,都能查找成功,但是效率很低。而且会头文件覆盖。
头文件(.h)
头文件用来写 类的声明 (包括类的成员的声明和方法声明)、函数原型、#define 常数等
#ifndef MYCLASS_H
#define MYCLASS_H// code here
#endif
防止头文件被重复引用。同一个头文件(.h)在同一个源文件(.cpp)中被include了多次
例子:存在cellphone.h这个头文件引用了#include "huawei.h",之后又有china.cpp这个源文件同时导入了#include "cellphone.h" 和 #include "huawei.h"。此时huawei.h就在一个源文件里引用了两次。
#ifndef HUAWEI_H // 防止huawei.h被重复引用
#define HUAWEI_H#include <cmath> // 引用标准库
#include "honor.h" // 引用非标准库头文件
...
void Function(); // 全局函数声明
class Mate20{ // 类声明public: Mate20(); // 构造函数声明~Mate20(); // 析构函数声明 private:protected:
};#endif
源文件(.cpp)
源文件主要写实现头文件中已经声明的那些函数的具体代码。需要注意的是,开头必须#include一下实现的头文件,以及要用到的头文件。那么当你需要用到自己写的头文件中的类时,只需要#include进来就行了。
#ifndef PEN_H
#define PEN_H
#include <string>
class Pen
{
public:
Pen(std::string brand);};
#endif
#include <iostream>
#include "Pen.h"
using namespace std;Pen::Pen(string brand) {
cout << "What brand are you looking for?" << endl;
cout << brand;
}int main() {
Pen pilot("pilot");
}// 输出结果为
/* What brand are you looking for?
pilot */