作者rockwalking (技安)
看板C_and_CPP
標題[語法] include
時間Sat Jun 19 01:13:18 2010
遇到兩個.h檔必須要互相include對方時發生的問題
//a.h
#ifndef A_H
#define A_H
#include "b.h"
class A
{
A(){_b = new B(this);}
void print(){}
private:
B* _b;
};
#endif
---------------------
//b.h
#ifndef B_H
#define B_H
#include "a.h"
class A;
class B
{
public:
B(A* ptr){
_a = ptr;
_a->print();
}
private:
A* _a;
}
;
#endif
---------------------
compile error:
invalid use of undefined type struct A;
forward declaration of 'struct A'
我是不知道該怎樣做啦請賜教,謝謝。
compiler: devC++ 4.9.9.2
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.136.79.51
※ 編輯: rockwalking 來自: 220.136.79.51 (06/19 01:16)
推 QQ29:雖說互相include不好 但我覺得你要解 先把定義拉到.cpp吧 06/19 01:18
推 loveflames:b.h的include在哪 06/19 01:19
※ 編輯: rockwalking 來自: 220.136.79.51 (06/19 01:21)
→ rockwalking:回樓上以加上但錯誤訊息是一樣的 06/19 01:22
→ rockwalking:1F建議我會考慮的 06/19 01:24
→ uranusjr:class A; 那行不該存在吧 06/19 17:39
→ uranusjr:沒事我看錯了 -.- 06/19 17:40