C++ 奇怪的行为。。请提出一些解决办法

C++ 奇怪的行为。。请提出一些解决办法,c++,C++,我遇到了一个非常奇怪的问题。我试图在这里解释全部情况。请提出一些解决办法 /* "test.h" */ class A : public B { public: A(); bool isUp; }; /* test.cpp */ #include "test.h" A::A() { isUp = false; //`isUp' was not declared in this scope } 如果我在.h内类中声明它意味着什

我遇到了一个非常奇怪的问题。我试图在这里解释全部情况。请提出一些解决办法

/* "test.h" */
class A : public B
{
    public:
       A();
       bool isUp;
};

/* test.cpp */
#include "test.h"
A::A()
{
    isUp = false;             //`isUp' was not declared in this scope
}
如果我在
.h
类中声明它意味着什么。如果我错了,那么我需要采取什么方法

编辑:

class B
{
   public:
  sem_t m_job_count; //added by RajaGopal
    B();
  void Init();
  void Init(char * s,int );

  void RegisterWorker(worker *aWorker);
  unsigned long getIndex(); 
  void setIndex(unsigned long index);

    char Msg[200];

    static void* ThreadProc(void *p);  

  ~B(); 
};

其中是B类
的定义。由于您继承的是类B,编译器需要知道类B的定义。包括它的头文件或它的定义

B的类定义应该对A可见


否则,我编译了这段代码,没有遇到任何问题。

dbasic。。。。编译器说“`isUp'未在此范围内声明”B类的定义在哪里?您的示例编译得很好(g++-4.8.2)(B定义为
B类{};
)dbasic。。。我不能提供完整的代码。但它是一个线程应用程序。但是我有所有的定义,它是A类的本地定义,所以不需要定义
B类
@user2845185-为什么不编写一些代码来重现问题,而不是使用尝试二次猜测你做错了什么?很抱歉。。。但我也声明了这一点。只是不包括在这里。请查看编辑并让我知道它是否能帮助您。他确实为
A
声明了默认构造函数。你说的我都做了。。如果我删除那个特定的变量,它就可以正常工作。如果我把它包括在我的项目中,它就是在给问题。@Jeffrey:在写答案的时候,它不在那里。现在,我已经编辑了它。