我剛剛開始使用C++進行編程,並試圖創建2個類,其中一個包含另一個類。類名不會在C++中命名爲類型
文件A.h
:
#ifndef _A_h
#define _A_h
class A{
public:
A(int id);
private:
int _id;
B _b; // HERE I GET A COMPILATION ERROR: B does not name a type
};
#endif
文件A.cpp
:
#include "A.h"
#include "B.h"
#include <cstdio>
A::A(int id): _id(id), _b(){
printf("hello\n the id is: %d\n", _id);
}
文件B.h
:
#ifndef _B_h
#define _B_h
class B{
public:
B();
};
#endif
文件B.cpp
:
#include "B.h"
#include <cstdio>
B::B(){
printf("this is hello from B\n");
}
我首先編譯B級,然後,A級,但後來我得到的錯誤信息:
A.h:9: error: ‘B’ does not name a type
我該如何解決這個問題?
@Georg你爲什麼把所有東西都放在一個代碼段中?他們是不同的文件。 – 2010-08-31 11:04:31
@Amir:在我點擊*編輯*之前,它看起來很破碎,而且我心不在焉:) – 2010-08-31 11:08:27
您可以通過點擊答案旁邊的勾號來接受您認爲最有用的答案之一。這對其他有類似問題的人會有幫助。 – Naveen 2010-08-31 11:10:28