我正在使用 boost msm 库(你不需要知道它是如何工作的)来编写我的状态机,我有一个 cpp 源文件组织问题。
在第一个源文件 (1.cpp) 中,我定义了状态机、事件和 Action 以及转换表,但我想在另一个 cpp 文件中定义状态,因为我需要大量编辑状态比状态机中的任何其他内容更频繁。
现在我所做的是在另一个源文件 (2.cpp) 中编写状态,并将 2.cpp 包含在 1.cpp 中
它编译和一切,但它一点也不干净,我想以某种方式封装它......有什么想法吗?
最佳答案
一般情况下,您只会包含 .h 文件,即声明类型的头文件和您将在关联的 .cpp 文件中实现的函数。您根本不需要包含实现文件。您是否创建了任何头文件?这是一个基本示例:
// Foo.h
class Foo {
// note that it is not defined here, only declared
public void some_function(int i);
};
// Foo.cpp
#include "Foo.h"
#include <iostream>
// implement the function here
void Foo::some_func(int i) {
std::cout << i;
}
关于c++ - 良好做法,包括源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10220606/