我正在开发一个不是我自己的代码库,它具有以下布局:
对象.h:
// Objects are defined
// #include "tickets.h" (functions to access the objects)
// An access-handler object is defined
我想介绍一个知道对象的类,可以从tickets.h中的函数访问,但也可以使用access-handler对象。这些函数是独立的,即在tickets.h 中调用的类函数不使用访问处理程序(如果不是这种情况,我不知道从哪里开始)。
因此我的类需要在tickets.h之前定义,但是它的一些函数需要在access-handler之后定义。有没有办法做到这一点,而无需将其拆分为两个头文件,如下所示:
// Objects are defined
// -- include declaration of class, and definition of functions that tickets.h needs
// #include "tickets.h"
// An access-handler object is defined
// -- include functions of class that need the access-handler
将这样的东西拆分成两个单独的文件似乎很麻烦,我希望保留所有内容。
感谢您的帮助,我显然对 C++ 中的声明/定义只有非常基本的了解。
编辑:如果我使用前向声明并在tickets.h 之前包含它(在mynewclass.h 中声明的类和在mynewclass.cc 中定义的函数)mynewclass.cc 是否能够使用在包含mynewclass.h 之后声明的对象?即访问处理程序对象。
EDIT2:像这样的东西:
对象.h:
class obj { // definition }
#include "tickets.h"
class obj_handler {
public void handle { // code }
}
门票.h:
void do_something(obj o){
communicator.foo();
}
我的对象(沟通者):
class communicator {
public:
void foo() { // code }
void bar() { // use handle() from obj_handler }
}
如您所见,我的通信器需要在tickets.h中使用,但直到obj_handler之后才能定义。那么我应该在哪里包含它?