c++ 为什么需要.h文件

参考地址:

https://mp.weixin.qq.com/s?__biz=MzA5MjQ2MDg1Mg==&mid=2247483716&idx=1&sn=b14ace510810e593c44c6439f610e770&chksm=906d831fa71a0a096d3079b6fac11a9659e9fd12db0fc0307ae30690542a2e30e8a456259298#rd

一般的文件都有.h和.cpp文件,前者用于声明,后者用于定义。

声明也可以写在.cpp文件里面,只是不方便其他.cpp文件调用

.h文件不参加编译,.cpp文件参加编译,分配空间

c++的运行过程:compile .cpp文件,生成.obj文件;link不同的.obj文件,生成.exe可执行文件

 

C++中,动态库(也称为共享库或DLL)通常包含一个或多个头文件(.h)和实现文件(.cpp)。这些文件构成了库的公共接口和私有实现。下面是一个简单的示例来说明如何编写这些文件。 首先,我们需要创建一个头文件(.h),它定义了动态库对外提供的接口。这可能包括函数声明、宏定义、类定义等。 ```cpp // example.h #ifndef EXAMPLE_H #define EXAMPLE_H // 函数声明 int Add(int a, int b); void Multiply(int a, int b, int* result); // 类声明 class MyClass { public: MyClass(); ~MyClass(); int DoSomething(int input); }; // 如果需要的话,也可以在这里定义宏或者枚举等 #define EXAMPLE_CONSTANT 100 #endif // EXAMPLE_H ``` 接下来,我们需要实现这些函数和类的方法。这通常在实现文件(.cpp)中完成。 ```cpp // example.cpp #include "example.h" // 函数定义 int Add(int a, int b) { return a + b; } void Multiply(int a, int b, int* result) { *result = a * b; } // 类成员函数定义 MyClass::MyClass() { // 构造函数的代码 } MyClass::~MyClass() { // 析构函数的代码 } int MyClass::DoSomething(int input) { // 类的成员函数实现 return input + 1; } ``` 在Linux系统下,动态库通常以.so为后缀,在Windows下则通常以.dll为后缀。创建动态库的过程会涉及编译器和链接器的使用,这里不详细展开。在创建动态库时,需要将这些.cpp文件编译成动态库文件(.so或.dll),然后其他应用程序可以通过链接这些动态库来使用其中的函数和类。 需要注意的是,头文件中声明的函数和类应该是可以被外部访问的,通常需要将它们声明为`extern "C"`(如果你使用的是C++编译器,需要支持C语言的符号),以避免C++的名称修饰(name mangling)导致符号在链接时无法正确找到。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值