上次我讲了ms 的nmake命令来进行编译多个cpp文件。这次我想一步步的自己来,不再通过makefile的帮助。
首先注意以下几点:
1、#include指令的机制就是讲.h文件中的内容复制到.cpp文件中,所以你只需要编译cpp文件。h文件只是一个陪衬。另外注意.h中的声明语句一定要记得在最后加上分号表示结束,否则编译程序会报错。你可以把h文件省去而直接加到cpp文件中,但是在之后的每一个文件中你就需要重写该类或者函数的声明。所以这也是h文件存在的原因。
2、你可以通过cl -c命令来编译类文件,编译成obj文件后,你可以使用lib命令将其编译为lib文件。然后使用link命令连接多个obj文件。默认生成的可执行文件的名称是命令中第一个obj文件的名称。
看我的例子
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include<iostream>
class A{
public:
int a;
int b;
void say();
};
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/**
class A{
public:
int a;
int b;
void say();
};
*/
#include "A.h"
void A::say(){
a = b;
}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//#include<iostream>
#include "A.h"
using namespace std;
int main(){
A a;
a.a = 0;
a.b = 9;
a.say();
cout<<a.a<<" "<<a.b<<endl;
}
这里有一个问题我想强调一下。很多同学可能多#include的多重包含不在意。其实#include只是一个复制机制。你可以在A的h文件中直接把iostream给包含了,那么在main中你就没有必要再去包含一次。这或许是很多同学不在意的吧。