C++中.CPP文件与.h文件有什么不同。详解与举例怎么使用

C++中.CPP文件与.h文件有什么不同。详解与举例怎么使用,第1张

以.h位后缀的是头文件,.cpp是源文件,一般都是在一个项目中。如果是初学c++的话,使用源文件(也就是.cpp)就足够编写出需要的源程序了。如书本上最基本的“HelloWorld”编码,只要在源文件中有一个主函数就可以完成一个程序。

在稍微复杂一点的程序中,也许就会用到头文件(.h)。事实上,这种头文件和代码中预处理里包含的头文件没有什么区别(就好像C语言中#include<stdio.h>)其中stdio.h就是一个头文件。

编写头文件就是按照自己的需要,给程序设计这样的头文件。头文件中,一般包含一些类的声明,函数定义之类的东西,方便在源文件的主函数中使用。

例如在a.h文件中:

#include<iostream>

usingnamespacestd

classTry

{

public:

voiddo()

}

接下来,只要在源文件b.cpp中的预处理命令里写成:

#include<iostream>

#include"a.h"(也就是在这里加上#include"a.h"这一句)

usingnamespacestd

.....

就可以在b.cpp的代码中声明和调用Try类型的对象了。

扩展资料

c++程序里使用多个cpp和h文件:

建立一个工程,里面有三个文件hello.hpp、hello.cpp、main.cpp

// hello.hpp

#ifndef HELLO_HPP

#define HELLO_HPP

class Hello

{

public:

void show() const

}

#endif

====================

// hello.cpp

#include "hello.hpp"

#include <iostream>

using std::cout

using std::endl

void Hello::show() const

{

cout << "Hello World" << endl

}

====================

// main.cpp

#include "hello.hpp"

int main()

{

Hello hello

hello.show()

return 0

}

参考资料来源:百度百科-C++

百度百科-cpp(一种计算机编程语言)

一、用法不同

1、.h文件直接#include到需要的.cpp文件里,就相当于把.h文件的代码拷贝到.cpp文件

2、.cpp文件需要先自己生成.o文件,把不同.o文件连接生成可执行文件。

比如有3个cpp文件:a.cpp、b.cpp、c.cpp,其中一个包含main()函数,需要生成test程序,

步骤:

(1)生成3个.o文件:

cc -c a.cpp

cc -c b.cpp

cc -c c.cpp

这样就得到3个.o文件:a.o、b.o、c.o

(2)链接生成test程序:cc -o test a.o b.o c.o

就得到test可执行程序,输入./test就可执行程序了。

二、规范不同

1、h文件一般包含类声明;

2、cpp文件一般为同名h文件定义所声明的类函数。

说明:一般可在cpp文件直接添加main()就可以测试该模块功能。

扩展资料:

放在.h里的数学计算公式:

1、 三角函数

double sin(double)正弦

double cos(double)余弦

double tan(double)正切

2 、反三角函数

double asin (double)结果介于[-PI/2,PI/2]

double acos (double)结果介于[0,PI]

double atan (double)反正切(主值),结果介于[-PI/2,PI/2]

double atan2 (double,double)反正切(整圆值),结果介于[-PI,PI]

3 、双曲三角函数

double sinh (double)

double cosh (double)

double tanh (double)

4 、指数与对数

double frexp(double value,int *exp)这是一个将value值拆分成小数部分f和(以2为底的)指数部分exp,并返回小数部分f,即f*2^exp。其中f取值在0.5~1.0范围或者0。

double ldexp(double x,int exp)这个函数刚好跟上面那个frexp函数功能相反,它的返回值是x*2^exp

double modf(double value,double *iptr)拆分value值,返回它的小数部分,iptr指向整数部分。

double log (double)以e为底的对数

double log10 (double)以10为底的对数

double pow(double x,double y)计算x的y次幂

float powf(float x,float y)功能与pow一致,只是输入与输出皆为单精度浮点数

double exp (double)求取自然数e的幂

double sqrt (double)开平方根

5 、取整

double ceil (double)取上整,返回不比x小的最小整数

double floor (double)取下整,返回不比x大的最大整数,即高斯函数[x]

6 、绝对值

double fabs (double)求实型的绝对值

double cabs(struct complex znum)求复数的绝对值

.h 和 .cpp 不是 连接/链接 关系,而是包含关系。

也就是说,在预编译期间,编译器把 .h 的文字内容,原原本本 插入.cpp 文件中,插入位置就在 #include 这句 宏命令处。文字内容 插入完毕,再编译 .cpp

系统的 .h 放在 系统文件夹们 里。系统文件夹路径 定义在环境变量 INCLUDE 里。

自定义 .h 可以放在当前文件夹,也可别的文件夹。若在别的文件夹,写 #include 时可以把路径加在.h 文件名前。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11619251.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存