我是C ++的新手,来自Java,我需要将一个简单的项目从Java迁移到C ++。我很困惑如何在C ++中处理模块和类分离。该项目如下图所示。我理解(纠正我,如果我错了)每个类都必须有一个头文件,以便其他系统可以使用我的库导入和使用它。但是由于C ++没有软件包,我不确定在C ++中处理组织问题的正确/标准方法是什么。有人可以帮忙吗?
答案 0 :(得分:4)
为了保持简单和干净,是的每个类应该有自己的头文件和相应的实现(.cpp)文件。你可以每个文件声明多个类,没有什么可以阻止你这样做但是如果你这样做,你可能会花一些时间在文件中导航来找到你正在寻找的类(尽管“去定义/声明“会做的工作。”
您可以在项目中的IDE中创建过滤器,就像在Eclipse中创建包一样。我建议过滤器遵循您在硬盘中为项目设置的相同文件夹结构。
正如Glenn所说,你应该使用C ++命名空间。例如,您的“Time.java”文件将由“Time.hpp”和“Time.cpp”文件表示。
示例:强>
Time.hpp:
namespace your_project {
namespace time {
// Time class declaration
}
}
CpuTime.hpp:
namespace your_project {
namespace time {
// CpuTime class declaration
}
}
StringUtils.hpp:
namespace your_project {
namespace utils {
// StringUtils class declaration
}
}
然后,如果你需要使用一个类,你只需要包含标题。
Example.cpp
#include <Utils/StringUtils.hpp>
using namespace your_project::utils;
// Do stuff with StringUtils class
答案 1 :(得分:1)
C ++有名称空间
您可以将每个目录映射到嵌套命名空间
namespace myproject
{
namespace time
{
}
}