编写C++多文件程序

时间:2024-05-21 07:15:36

原创文章转载请注明出处:http://blog.163.com/xin_ruo_zai/blog/static/239016055201491174337195/

编辑C++多文本程序的关键在于一下几点:

1. 只能有一个main(这是C、C++语法的基本原则之一)。

2. 用适当的方式将你编辑的这几个文本有机地联系起来。如果你编辑的几个程序文本中有一个是孤立的,那么孤立的那个文本将和单文本程序无异。

3. 类名、方法名、变量名不要出现重复。

 

以上三点中1和3是比较容易做到的:对于1只要只编写一个main即可,对于恰当地使用命名空间即可。这里重点叙述第二点。要做好第二点就要恰当地使用include指令,常用的途径有三种:#include "*.cpp"、#include "*.h"和#include "无扩展名文件" 。下面做一一介绍。

1. include "*.cpp"

 

 这种方式算是最简单的了。如果在文件的开头做了这种包含指令,相当于将被包含的文件中的代码全部复制到当前文件的开头部分。或者说这种包含指令相当于将两个程序文本合并成一个更大的程序文本,这两个文本中的所有代码都相当于编辑在同一个文本中的,只不过二者在空间上是分开的。下面给出这种包含方式的例子。

源程序:

首先定义一个文件名为:include.cpp

编写C++多文件程序

 在其中添加相应代码:(VC6.0编辑器)

编写C++多文件程序

 再定义主调文件和主函数:

编写C++多文件程序
 
编写C++多文件程序

 

需要注意的是因为这种包含方式相当于将两个文件合并因此主调文件中不需要再包含标准输入输出流和标准命名空间,因为在第一个文件中已经包含过了。程序执行的结果显而易见:

编写C++多文件程序

还有一点需要注意的是一个文件不能引用自己,即在include.cpp文件中绝对不可以有#include "include.cpp"这样的字样。因此定义在文件中偏下部位的方法要在文件顶部声明才能被偏上部分的方法调用。如下图所示:

编写C++多文件程序
 
2. include "*.h"
 
这种方式算是比较传统的一种了,也是使用最多的一种方法。即在H文件(头文件)中声明变量和方法,在同名的CPP文件(源文件)中定义这些变量和方法,最后再被主调文件调用。
这里笔者在同一个工程中新建名为incldue.cpp的源文件、include.h的头文件和名为main.cpp的主调文件
编写C++多文件程序
 
 在源文件中输入变量和方法的定义
编写C++多文件程序
 
在头文件中声明这些变量、类和方法
编写C++多文件程序
 
再在主调函数中调用即可
编写C++多文件程序
 
程序执行结果如下:
编写C++多文件程序
 
这里需要注意的是与第1种方法不同的是虽然在源文件中包含了标准输入输出流和标准命名空间,但是在主调文件中还要再包含一遍,主调文件和源文件之间只是包含关系,不是同一文件。
 
2. include "无扩展名文件"
 
这种方式类似包含标准输入输出流iostream一样没有扩展名。这种方式需要首先建立一个没有扩展名的文件并将要包含的内容输入到其中:
这里笔者新建一个名为include的文件
编写C++多文件程序
 
将必要的变量、方法、类定义输入到其中:
编写C++多文件程序
 
由于该文件没有扩展名,因此编译器不识别该文件类型,因此对关键字不给予亮显功能。
再建立主调文件:
编写C++多文件程序
 
编写主调函数:
编写C++多文件程序
 
注意这里引用的include无扩展名,因为include文件中是分别引用的标准输入流和标准输出流并且并未引用标准命名空间因此在主调文件中不需要再引用标准输入输出流了(这里引用了也没事)但是需要引用标准命名空间。而我们又在include文件中定义了自己的命名空间my_namespace因此在主调文件中也需要引用。
 
程序执行的结果也自然是这样的:
编写C++多文件程序