一个cpp中的类定义如何对另一个cpp可见/可用

时间:2012-09-06 08:16:22

标签: c++ void-pointers

在将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");
}

这就是上次的工作方式 - 有点像。我非常感谢这个混乱的构造或任何使这个代码更好/工作的可靠解决方案。谢谢!

2 个答案:

答案 0 :(得分:2)

如果您只需要指针或对X的引用,您还可以在Y.cpp中使用类X的前向声明。

答案 1 :(得分:0)

将X文件拆分为包含类声明的头文件(X.h)和包含类构造函数,方法等定义的源文件(X.cpp)。 现在将头文件包含在您的Y.cpp文件中。然后以某种方式编译:

g++ Y.cpp X.cpp