2015-03-19 3 views
0

Есть три .h файловC++ два файла заголовок включает друг друг

хиджра:

#ifndef __A_H__ 
#define __A_H__ 

#include"Card.h" 
#include"B.h" 

struct A{ 
    Card card; 
    ..... 
}; 

void getCards(A *a, int num); 

#endif 

B.h

#ifndef __B_H__ 
#define __B_H__ 

#include"Card.h" 
#include"A.h" 

struct B{ 
    Card card; 
    ..... 
}; 

void getCards(A *a, B *b, int num); 

#endif 

Card.h

#ifndef __CARD_H__ 
#define __CARD_H__ 

struct Card{ 
    int num; 
    char *type; 
}; 

#endif 

С A.h в nd B.h включает в себя друг друга, не все заголовочные файлы включены.

Пожалуйста, дайте мне несколько советов.

+0

@EdChum: «Не все файлы заголовков включаются», вы должны сделать это в ответ –

+0

, что вы имеете в виду ??? – theadnangondal

+0

@EdChum: Я сделал быстрый поиск, но не нашел ответа на вопрос, который я бы рассмотрел, канонически, чтобы ответить на вопрос оп. Может быть, я не выглядел достаточно сложно, хотя, похоже, он должен существовать. –

ответ

1

Насколько я могу судить, вам не нужно включать «B.h» в ваш файл «A.h». Поэтому удалите его, чтобы уменьшить зависимости. Включение «A.h» в ваш файл «B.h» также кажется ненужным. Достаточно простого простого заявления.

B.h

#ifndef __B_H__ 
#define __B_H__ 

#include"Card.h" 

class A; // then you will have to include A.h in your B.cpp file 

struct B{ 
    Card card; 
    ..... 
}; 

void getCards(A *a, B *b, int num); 

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