C++多文件编程(一)
最近在程序设计实践课上重学C++,由于小组合作,自然就不是单纯的一个人写完代码写到一个文件里完事,所有最近接触了一下多文件编程的逻辑。
首先,多文件编程主要是为了组内合作,将一个项目分解成耦合度低的多个部分,使他们独立考虑,结合面向对象可以更好的分工明确,各自完成编码任务
C++文件大致会按后缀名分为两类:
.h
文件:用于常量的声明,函数的声明部分,类的声明部分.cpp
文件:用于存放变量的声明,函数的定义部分,类的实现部分
(但是由于贪吃蛇还是比较简单,我并未做类的两部分分离)
由于面向对象的特殊性,很多地方存在多个类之间的相互依赖,由于这种原因,我们的头文件可能会出现重复引入
为了解决这个问题,一个常见的方式是利用ifndef和define来避免重复定义类之类的东西(clion采用这种方式让我比较深刻理解了各种define的意义,之前竞赛完全没有这样的意识)
另一个常见的方式是#pragma one
,用这个编译指令,可以只控制引入文件一次,但由于这是一种编译指令,所以移植性很差,与这相同的还有_Pragma("once")
这种写法
另一个重要的方面就是命名空间(namespace)。这东西是用来避免两个人的代码命名出现重合的,现在小项目不太用得起来,后续应该会尝试。