2013-09-03 7 views
1

При попытке скомпилировать мой проект этот заголовочный файл (Bobjr) code :: blocks дает мне ошибку Ожидаемое имя класса перед '{' токеном. Что не так с этим кодом?Ожидаемое имя класса перед '{' token

#ifndef BOBJR_H 
#define BOBJR_H 


class Bobjr: public Bob 
{ 
    public: 
     Bobjr(); 
}; 

#endif // BOBJR_H 

Это Bobjr каст:

#include "Bobjr.h" 
#include "Bob.h" 
#include <iostream> 

Bobjr::Bobjr() 
{ 
    //ctor 
} 
+2

Где находится '' Bob'? – P0W

+0

Bob jr. требуется больше родительских прав :-) –

ответ

4

Вы упускаете определение для Bob. Вы либо нуждаетесь в этом в том же заголовке, что и #include, заголовок, который объявляет Bob, прежде чем объявлять Bobjr

+0

Нужно ли включать его в файл заголовка? Потому что в файл .cpp уже включен Боб. –

+0

Да, вам тоже нужно в заголовке. Это необходимо, например, если «Bobjr» создается из другого исходного файла или подклассифицирован в другом месте – simonc

+3

@ArthurDent: все, что относится к имени «Боб», должно быть в состоянии видеть объявление «Боба». В противном случае компилятор не знает даже, что «Боб» - это класс. –

Смежные вопросы