C ++单独文件中的每个Class方法?

时间:2014-06-10 19:12:38

标签: c++ class compilation

将每个Class'方法放在单独的文件中的最佳和/或更标准的方法是什么?

例如:

Class A {
    public:
        void method_a(int foo1);
        void method_b(int foo2);
}

将method_a()和method_b()的代码放在单独的.cpp文件中,尽管两者最终都属于A类。

#includes和标题应该如何组织?

这个想法是保持文件小,以便快速部分编译(手工而不是IDE)。所以只需编译该文件,然后链接到已编译的其他文件。

2 个答案:

答案 0 :(得分:2)

在头文件foo.h中

Class A {
    public:
        void method_a(int foo1);
        void method_b(int foo2);
};

在fooa.cpp

#include "foo.h"
void A::method_a(int foo1)
{ 
    // blah blah
}

在foob.cpp

#include "foo.h"
void A::method_b(int foo2)
{ 
    // blah blah
}

答案 1 :(得分:2)

我将首先详细阐述:

  

所以只需编译该文件,然后链接到已编译的其他文件。

如果更改实现文件(.cpp)需要更改标头(例如更改成员函数中传递的参数),该怎么办?然后标题将更改,包含该标头的所有.cpp文件都需要重新编译。

您建议的编译方法的成功(至少)三个措施:

  • 编译速度
  • 方面的成功 目标文件的
  • 大小
  • 易用性(对于IDE,与普通VI相比,在大量文件中漫游要容易得多),特别是考虑到这种方法如何随着不断发展/不断发展的项目而扩展。

所有这些都严重依赖于您用于创建/编译项目及其配置/优化设置工具链。两件事保证(和明显的FWIW):

  • 这是一个正确的工作过程,由语言允许。
  • 不常见

考虑到存在加速编译的专用工具,后来的事实是合理的。我提到两个: