2013-09-19 6 views
-2

извините заранее, чтобы запустить еще одну из этих потоков круговой зависимости, но я попробовал почти все, и, может быть, свежая пара глаз может помочь. Как я могу скомпилировать это *?Ожидаемое имя класса в цикле до '{' token

CARD.H

#ifndef CARD_H 
#define CARD_H 

#include <string> 
#include <sstream> 
#include <irrKlang.h> 
#include "Database.h" 

using namespace std; 
using namespace irrklang; 

class Card: public Database{ // problem expected class-name before '{' token 
public: 

database.h

#ifndef __DATABASE_H__ 
#define __DATABASE_H__ 

#include <string> 
#include <vector> 
#include <sqlite3.h> 
#include <wx/string.h> 
#include <irrKlang.h> 
#include <wx/file.h> 

#include "Card.h" // even though i include card.h 

using namespace std; 
using namespace irrklang; 

class Card; // if i take this out, I get: 'Card' was not declared in this scope| 

class Database 
{ 
public: 
vector<Card> queryC(wstring query); 
+0

«Карта» наследует «База данных»? Звучит не совсем правильно. –

+0

Этот apperas является синтаксической ошибкой, так как отсутствует симиколон или отсутствующая скобка, поэтому фрагмент кода, который показывает код, подлежащий передаче, будет приятным .... – dhein

ответ

0

два правила, которые помогут предотвратить круговые зависимости: 1.) Если вы не нуждаетесь в реализации класса, объявить его только по прямой ссылке. 2.) Если вам нужна реализация, включите заголовочный файл как можно позже.

Card.h

#ifndef CARD_H 
#define CARD_H 

#include "Database.h" 

class Card : public Database { 
    public: 
      int card; 
}; 

#endif // #ifndef CARD_H 

database.h

#ifndef DATABASE_H 
#define DATABASE_H 

#include <vector> 
#include <string> 

class Card; 

class Database { 
    public: 
      std::vector<Card> queryC(std::string query); 
}; 

#endif // #ifndef DATABASE_H 

Card.cpp

#include "Card.h" 

Card card; 

Database.cpp

#include "Database.h" 

Database database; 

.

$ g++ -c Card.cpp -o Card.o 
$ g++ -c Database.cpp -o Database.o 
$ ls -l Card.o Database.o 
-rw-r--r-- 1 user group 959 19. Sep 09:13 Card.o 
-rw-r--r-- 1 user group 967 19. Sep 09:13 Database.o 
Смежные вопросы