大家好,今天小编来为大家解答免费公司起名在线源码分享网站这个问题,免费公司起名在线源码分享网站是什么很多人还不知道,现在让我们一起来看看吧!
1.定义
头文件是扩展名为.h的文件,头文件也是C++的源代码,头文件中包含了C++中函数、类、对象等的声明和宏定义,它可以被多个源文件通过include就可以一下引入所有的声明。当然也可以在头文件中定义宏。自定义的头文件,使用include<头文件.h>
3.编译过程中的头文件
C++代码的编译主要通过以下几个过程:预编译->编译->汇编->链接【可参考:链接(建议先看此链接,再看下面内容)】,最后生成可执行文件。在预编译阶段,编译器将ifndefCA_H\nendif
头文件中的函数、类、对象(变量)必须在一个源文件有进行定义,这里在A.cpp中进行定义。A.cpp:
34;CA.h&include&34;\n\nintFun1()\n{\nreturnFun()+1;\n}\n\nintmain(){\nreturnFun1();\n}
预编译命令:
g++-EB.cpp-oB.i
经过预处理后,B.i:
34;B.cpp&1&34;\n34;<command-line>&1&34;134\n34;<command-line>&1&34;\n34;CA.h&2&34;2\n\nintFun1()\n{\nreturnFun()+1;\n}\n\nintmain(){\nreturnFun1();\n}
可以看到,B.cpp中的头文件ifndefCIRCLE_H\nendif
defineCIRCLE_H来定义CIRCLE_H。这样做以后,即使重复引入头文件,也不会重复执行if中的东西。至于CIRCLE_H这个名字实际上是无所谓的,你叫什么都行,只要符合规范都行。原则上来说,非常建议把它写成这种形式,因为比较容易和头文件的名字对应。下面举个最简单的例子来描述一下,咱就求个圆面积。第1步,建立一个空工程(以在VS2003环境下为例)。第2步,在头文件的文件夹里新建一个名为Circle.h的头文件,它的内容如下:
defineCIRCLE_H\n\nclassCircle\n{\nprivate:\ndoubler;//半径\npublic:\nCircle();//构造函数\nCircle(doubleR);//构造函数\ndoubleArea();//求面积函数\n};\n\ninclude&34;\n\nCircle::Circle()\n{\nthis->r=5.0;\n}\n\nCircle::Circle(doubleR)\n{\nthis->r=R;\n}\n\ndoubleCircle::Area()\n{\nreturn3.14*r*r;\n}
一般实现Circle.h的cpp文件取名为Circle.cpp最后,我们建一个main.cpp来测试我们写的Circle类,它的内容如下:
include&34;\nusingnamespacestd;\n\nintmain()\n{\nCirclec(3);\ncout<<&34;<<c.Area()<<endl;\nreturn1;\n}
运行命令:
g++Circle.cppmain.cpp-omain\n./main
5.C++头文件有.h和没有.h
iostream.h是非标准头文件,iostream是标准头文件形式。iostream.h时代没有名词空间,即所有库函数包括头文件iostream.h都声明在全局域。为了体现结构层次,c++标准委员会引入了名词空间这一概念,并把所有库函数声明由全局域改到了名词空间std。iostream.h里面定义的所有类以及对象都是在全局空间里,所以可以直接使用cout,但如果你用iostream,就不能直接使用cout了,iostream里面所定义的东西都在标准命名空间std里面,所以你必须加上usingnamespacestd才能使用cout。故而,在早些时候,这两种头文件是等价:
includeusingnamespacestd;现在标准的C++头文件没有.h扩展名,将以前的C的头文件转化为C++的头文件后,可以加上c的前缀表示来自于c,例如cmath就是由math,h变来。注意:c语言的string.h变为cstring,和c++的string是两个完全不同的东西。
6.后缀为.hpp的文件
后缀为.hpp的文件一般提供程序使用的接口。
我们公司和另一家软件公司合作,这样就必然要互相提供一些软件的信息(比如一些类,它到底是要做什么的),可是在提供这些信息的同时我们又不像让对方知道我们这些类的具体实现,毕竟这些是我们公司的算法核心和心血啊。所以这个时候就可以把类的接口(这个类是要做什么的)放在*.hpp文件中,而具体类的实现放在.cpp文件。这时候我们只要给对方公司.hpp文件就行了。这样既提供了必要的信息,又保护了我们的核心代码。
OK,本文到此结束,希望对大家有所帮助。
