.hpp
文件是一种常见的 C++ 头文件扩展名,表示C++ 头文件(Header File)。它的作用与传统的 .h
文件相似,但更常用于区分 C++ 的头文件和 C 的头文件。
存储声明:
.hpp
文件通常用于声明类、函数、模板、全局变量等。.cpp
文件中。示例:
// myclass.hpp
#ifndef MYCLASS_HPP
#define MYCLASS_HPP
class MyClass {
public:
void printMessage();
};
#endif
表示 C++ 代码:
.hpp
是一种约定,表示头文件包含的代码是专为 C++ 编写的。.h
,它在大型项目中有助于清晰区分 C++ 和 C 头文件。模板和内联代码:
.hpp
文件会直接定义这些内容(因为模板和内联代码必须放在头文件中)。示例:
// mytemplate.hpp
template <typename T>
class MyTemplate {
public:
T add(T a, T b) {
return a + b;
}
};
与命名一致:
.hpp
的命名与 C++ 源文件 .cpp
一致,便于维护和管理代码。.h
和 .hpp
特性 | .h 文件 | .hpp 文件 |
---|---|---|
语言区分 | 通常用于 C 或混合 C 和 C++ 代码 | 专用于 C++ |
用途 | 一般用于声明函数、宏和数据结构 | 声明 C++ 特有的类、模板等 |
可读性 | 传统,兼容性好 | 更清晰地表达文件语言归属 |
约定 | 没有明确区分用途 | 更适合现代 C++ 项目组织结构 |
项目中统一规范:
.hpp
,但在 C 和 C++ 混合项目中,可继续使用 .h
。保护头文件:
确保使用 include guards 或 #pragma once
,避免重复包含:
#pragma once
与 .cpp
配合:
.hpp
存放声明,.cpp
存放实现:
// example.hpp
class Example {
public:
void doSomething();
};
// example.cpp
#include "example.hpp"
#include <iostream>
void Example::doSomething() {
std::cout << "Doing something!" << std::endl;
}
总结:.hpp
文件是 C++ 项目中非常常见的头文件格式,用于存放声明,清晰地表明文件适用于 C++。通过与 .cpp
文件配合,可以实现代码的清晰分离和复用。