首先,所有的代码是都可以放在一个cpp文件里面的。这对电脑来说没有任何区别,
但对于一个工程来说,臃肿的代码是一场灾难,非常不适合阅读和后期维护,
所以.h和.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()就可以测试该模块功能。
例(g++):
1 //point.h
2 #include<stdio.h>
3 typedef struct Point Point;
4 struct Point{
5 int x,y;
6 Point(int _x,int _y);
7 void ADD(Point _p);
8 void Print();
9 };
1 //point.c
2 #include"point.h"
3 #define DEBUG 1
4 Point::Point(int _x,int _y){
5 x=_x;
6 y=_y;
7 }
8 void Point::ADD(Point _p){
9 x+=_p.x;
10 y+=_p.y;
11
12 ▽oid Point::Print(){
13 printf("(%d,%d)\n",x,y);
14 }
15
16 #if DEBUG
17 int main(){
18 Point a(1,1);
19 Point b(2,2);
20 a.Print();
21 a.ADD(b);
22 a.Print();
23 return 0;
24 }
25 #endif
执行:
g++ -c point.c
g++ -o test point.o
获得可执行程序test
执行test,可得到结果:
[zjp@virtual-CentOS-for-test workstation]$ ./test
(1,1)
(3,3)