关于C++类的三个基本问题

public:A*classA;第一个问题:如下代码,classA成员变量需要在析构函数中delete吗?第二个问题:classA需要在某个地方newA一下吗?还是直接调... public: A *classA;
第一个问题:如下代码,classA成员变量需要在析构函数中delete吗?
第二个问题:classA需要在某个地方new A一下吗?还是直接调用:classA->XXX();
第三个问题:类A有构造函数有参数怎么办?这个时候需要如第第二问题那样new一下吗?
展开
 我来答
lkjhggv
2013-04-14 · TA获得超过3063个赞
知道大有可为答主
回答量:1550
采纳率:66%
帮助的人:1310万
展开全部
1只有在构造函数中new或成员函数中new的才需要
比如有个成员int* p;
可以在构造函数初始化列表中对其赋值为NULL
在析构中 if (p != NULL) {delete p; p = NULL;}
2指针只分配了指针的空间,没有对象,直接调用classA->XXX()会产生内存非法访问
3由于指针只分配了指针的空间,所以不会调用构造函数,new的时候必须用相应的构造函数
厚灬黑
2013-04-14 · 超过50用户采纳过TA的回答
知道小有建树答主
回答量:212
采纳率:0%
帮助的人:119万
展开全部
1 不需要 只有malloc之后的指针才需要delete
2 如果只是指针指向,直接调用就可以了
3 这就是要new一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
88020218
2013-04-14 · 超过11用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:36.4万
展开全部
1不需要。只有NEW出来的空间需要delete。malloc出来的需要free。
2直接调用。new是获取一个空间的指针地址
3构造函数有参数跟new木有关系的。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
找自己_做自己
2013-04-15
知道答主
回答量:41
采纳率:0%
帮助的人:3.9万
展开全部
创建的要释放,delete 就调用析构函数。有时候需要new一下,子类new一个父类的对象,可以使用父类的成员。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式