如何在头文件定义的类中,调用源文件的结构体

【求助】怎么在头文件定义的类中,调用源文件的结构体。
我现在有一个A类,有A.h和A.cpp。

在A.h中定义了A类。

在A.cpp定义了结构体B。

因为不想把结构体B暴露出来,同时在A类中又需要用结构体B(定义了一个B类型的私有成员变量)。

现在,怎么在A类中,定义结构体B。
------解决思路----------------------
引用:
再阐述一下:
现在,我是在A.h中定义类A和结构体B。使用神马的都没问题。

拔特,我想在A.cpp里定义结构体,这时A类定义B类型的私有成员变量就会出现问题了。现求教该问题怎么解。

A.h
声明stuct B;
然后class A{....; B* m_b;};
A.cpp
实现定义struct B{...}//struct B{...}可以放入B.h, 然后A.cpp包含B.h
然后实现A的函数,


------解决思路----------------------
你在A.cpp中定义结构体B,那你在A.h中就只能用B的指针(B *m_b),而且也得先声明B,如8楼所说,不能这么用B  m_b,因为在头文件中没有定义B,所以它的内存大小没法计算,从而导致编译失败。如果你连在A.h中都不想声明B的话,那就只能用void *m_b了,在A的构造函数中m_b = new B,但在A.cpp中用到m_b的地方都强制转换成B的指针才能来用。
------解决思路----------------------
引用:
Quote: 引用:

把B类的声明和定义都放到A类中去。。


是A类和B结构体,不是B类

一个意思啊
class A
{
     struct B { ... };
privatle:
     B b;
};
------解决思路----------------------
知道pimpl吗?这个就是这样的。
class A{
private:
struct  B;
B* pmpl;
};


然后就是cpp