0

3つの.hファイルがあります

あ:

#ifndef __A_H__
#define __A_H__

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

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

void getCards(A *a, int num);

#endif

Bh

#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

カード.h

#ifndef __CARD_H__
#define __CARD_H__

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

#endif

A.hB.hは互いにインクルードするため、すべてのヘッダー ファイルがインクルードされるわけではありません。

アドバイスをお願いします。

4

1 に答える 1

2

私の知る限り、「Ah」ファイルに「Bh」を含める必要はありません。したがって、依存関係を減らすために削除してください。「Bh」ファイルに「Ah」を含める必要もないようです。単純な前方宣言で十分です。

Bh

#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
于 2015-03-19T10:29:34.100 に答える