我应该如何在项目中分离函数,类定义和主代码?

时间:2012-04-25 18:47:25

标签: c++ multiple-files

我目前有一个包含3个文件的项目。

一个DBheader.h头文件,其中包含:

  • 类声明(使用较小的成员函数定义)

DBdefinitions.cpp文件:

  • DBheader.h
  • 中类的较大成员函数定义

最后是DBmain.cpp文件,其中包含:

  • 主要代码
  • 一些使用DBheader.h
  • 中定义的类的大型(非memeber)函数

我最好将某些功能移到某处,以使我的DBmain.cpp文件不那么混乱。我应该/可以将它们移动到DBdefinition.cpp文件,还是需要为非成员函数创建一个新的单独.cpp文件?

如果上述内容不清楚,我的代码就是一个粗略的内容。

//DBheader.h

//libraries..

class course{
//member data..

void printinfo();

}

-

//DBdefinitions.cpp

#include "DBheader.h"
void course::printinfo(){/*do stuff*/}

-

//DBmain.cpp

#include "DBheader.h"
typedef map<int,course> record;
void fileinput(record &map);
int main(){
//stuff
}
void fileinput(record &map){
//lots of code
}

1 个答案:

答案 0 :(得分:1)

您应该以与class定义类似的方式组织作为公共接口一部分的自由函数:带声明的标头和带有实现的实现文件。

如果它们特定于特定的翻译单元,请将它们保存在该实施文件中。

所有自由函数都应在namespace内声明(以公共名称命名,匿名为“私人”自由函数)。