c++ - 项目中的函数、类定义和主要代码应该如何分离?

标签 c++

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

一个 DBheader.h 头文件,包括:

  • 类声明(及其较小的成员函数定义)

DBdefinitions.cpp 文件包含:

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

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

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

我最好将这些函数移到某个地方,以使我的 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
}

最佳答案

您应该按照用于 定义的类似方式来组织作为公共(public)接口(interface)一部分的自由函数:带有声明的 header 和带有实现的实现文件。

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

所有自由函数都应在命名空间 内声明(为公共(public)函数命名,为“私有(private)”自由函数命名)。

关于c++ - 项目中的函数、类定义和主要代码应该如何分离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10321908/

相关文章:

android - 如何使用 cmake 和 Android NDK 在 C++ 中加载线程支持

c++ - opencv 二进制数据 jpg 图像到 cv::Mat

php - C++ 的功能是否比 PHP 少?

c++ - 我什么时候应该使用前进和移动?

c++ - visual C++ 声明一个字符串数组

c++ - Lua 5.2 - 对象中的 C++ 对象(使用 lua_lightuserdata)

c++ - 使用 C++ 标准库以对数时间进行 Heapify

c++ - 在其他 C++ 程序中声明函数的 C++ 程序中调用函数

c++ - 错误 =>/usr/bin/ld: 找不到 -lQt5::Core -lQt5::Gui -lQt5::Test -lQt5::Concurrent -lQt5::OpenGL

c++ - 典型的 Win32 文件删除 (IDropTarget::Drop) 实现?