奇怪的行为..请建议一些解决方案

时间:2013-12-08 10:39:48

标签: 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 class内声明它是什么意思。如果我错了,那么我需要遵循什么方法。

编辑:

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(); 
};

1 个答案:

答案 0 :(得分:2)

class B的定义在哪里。由于您继承了B类,编译器需要知道B类的定义。包括它的头文件或其定义。

B的类定义应该对A可见。

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