[英]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.