2013-12-08 81 views
-3

我遇到了一個很奇怪的問題。我想在這裏解釋完整的場景。請提出一些解決方案。奇怪的行爲..請建議一些解決方案

/* "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

問題是什麼? – doptimusprime

+0

dbasic ....編譯器聲明「isUp」未在此範圍內聲明「 – user2845185

+2

B類的定義在哪裏? – doptimusprime

回答

2

哪裏是class B定義。由於您繼承了B類,因此編譯器需要知道類B的定義。還包括其頭文件或其定義。 B的

類的定義應該是可見的A.

否則,我編寫的代碼here,並沒有遇到任何問題。

+0

對不起,這個......但我也是這麼說的。只是不包括在這裏。 – user2845185

+0

查看編輯並讓我知道它是否可以幫助你。 – doptimusprime

+0

他*做*聲明'A'的默認構造函數。 – Shoe

相關問題