请参阅下面的代码:
obj1.h
class OBJ1 : public A_OBJ
{
public:
//virtual pure from A_OBJ
virtual void m_method();
int getterX();
private:
int x;
}
obj2.h
class OBJ2 : public A_OBJ
{
public:
//virtual pure from A_OBJ
virtual void m_method();
void iWantX();
}
obj1.cpp
#include "obj1.h"
OBJ1 obj1;
OBJ1::m_method()
{
//do_something()
}
OBJ1::getterX()
{
return x;
}
obj2.cpp
#include "obj2.h"
OBJ2 obj2;
OBJ2::m_method()
{
//do_something()
}
OBJ2::iWantX()
{
int z = OBJ1::getterX();
}
当我尝试编译那个简单的代码(g++ obj1.cpp obj2.cpp _main_
)时,我不断收到一个恼人的错误:
obj2.cpp: error: 'OBJ1' has not been declared
我已经尝试过声明OBJ1 obj1
和obj2.cpp
其他事情,但没有任何效果......
你知道如何解决这个问题吗?谢谢 !