C++ 头文件中定义类型为类的数据成员

例如我有一个类A的头文件A.h,里面有个数据成员是类B的。ClassA{public:A();private:Bb;};然后我只是想声明下这个数据成员。等到A.cpp中的... 例如我有一个类A的头文件A.h,里面有个数据成员是类B的。
Class A{
public:
A();
private:
B b;
};
然后我只是想声明下这个数据成员。等到A.cpp中的A的构造函数时候再初始化b。

但是Compiler说我错了,说我没有默认的B的构造函数。(我B的构造函数需要1个参数的)

接下来是想问的问题:
1、是否就算我有B的无参数的构造函数,Compiler说不出错,但其实我在头文件里初始化了b,并不是在A的构造函数中?
2、是否这样应该写成B *b才能完成我想要的结果?
3、B *b是不是还需要析构函数中释放?
谢谢
这样说吧,我有一个a类,它有一个类型为b类的数据成员。我想在a类实例构造时初始化那个数据成员。头文件和实现文件里应该怎么写
展开
 我来答
if渲染
2012-09-23 · 超过27用户采纳过TA的回答
知道答主
回答量:114
采纳率:0%
帮助的人:62.4万
展开全部
首先,头文件并不会参与编译过程,它只是起到数据定义的作用,所以编译错误只可能是你的编译器有问题,其次,一个类在没有实例化之前,是不占有内存空间的,所以也不可能产生错误,除非你的程序有语法问题
b不为指针,在A的构造函数中,b = *(new B());
b为指针,在A的构造函数中,b = new B();
后面那个new B()中B的构造函数的是否有参数可以根据需要改变一下
try_ok
2012-09-23 · TA获得超过211个赞
知道小有建树答主
回答量:423
采纳率:0%
帮助的人:257万
展开全部
你的A.h要包含B类所在文件的头文件里面,比如B.h
追问
写了的。
还有我问下,是不是一个类中所有的include都写在头文件里而不是cpp里的?还是2边都要写,还是看情况?
追答
cpp里面也要写啊,不只是在头文件里面
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式