[英]c++ two class reference each other Error: expected type-specifier before 'ClassName'
我在頭文件中寫了兩個類,如下所示,兩個類相互引用,我在A類中使用之前添加了B類,但它有一個錯誤。
#ifndef TEST_H
#define TEST_H
class B;
class A {
public:
B *b;
void test() {
b = new B();
}
};
class B {
public:
A *a;
void test() {
a = new A();
}
};
#endif // TEST_H
怎么解決? 謝謝。
b = new B();
此時,前方聲明已不再適用。 必須知道類B
的定義才能實例化類的實例。
只需要延遲兩個test
方法的定義,直到定義了兩個類:
class B;
class A {
public:
B *b;
void test();
};
class B {
public:
A *a;
void test();
};
inline void A::test() {
b = new B();
}
inline void B::test() {
a = new A();
}
從技術上講,沒有必要重新定位類的test()
方法的定義,但它看起來更整潔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.