在将boost,一个演示项目和另一个库结合起来时,我遇到了我的定义问题。
有一个X.cpp文件,包括一个类X,我需要将这个类用于Y.cpp中的变量,将void指针转换为指向该类的指针。
在代码中:
X.cpp
#include <boost/...>
class x {
}
Main(){
x c(...);
handler = init(&c);
anotherLib-Function(void *handler);
//will call function in Y.cpp with c as void pointer
}
Y.cpp
#include ?!!
yfunction(void *c){
x *cHandle;
*cHandle = (x *)c;
(*cHandle).write("texte");
}
这就是上次的工作方式 - 有点像。我非常感谢这个混乱的构造或任何使这个代码更好/工作的可靠解决方案。谢谢!
答案 0 :(得分:2)
如果您只需要指针或对X的引用,您还可以在Y.cpp
中使用类X的前向声明。
答案 1 :(得分:0)
将X文件拆分为包含类声明的头文件(X.h)和包含类构造函数,方法等定义的源文件(X.cpp)。 现在将头文件包含在您的Y.cpp文件中。然后以某种方式编译:
g++ Y.cpp X.cpp