C++怎么用new创建类对象?

比如,已经有一个封装好的类A,想new在类B上,应该怎么写?... 比如,已经有一个封装好的类A,想new在类B上,应该怎么写? 展开
 我来答
百度网友32697e9
推荐于2017-09-02 · TA获得超过387个赞
知道小有建树答主
回答量:239
采纳率:0%
帮助的人:98.2万
展开全部
假设类名字为 T 使用语法 :T* object = new T(), 其中括号里可以填写类初始化的参数, 得到的 object 是一个T类型的指针,别忘了用delet object 释放内存。

当C++程序用new 分配内存的时候,会比C的malloc 做一些额外的工作,尤其是使得类里面使用的STD标准库类型的变量的到合适的初始化。此外,如果有自己编写的内存管理器,new 还有一个变种: T* object = new (manager) T(), 如果需要, 请参考:
http://www.cnblogs.com/younes/archive/2010/04/26/1721528.html
b_spike
2015-04-28 · TA获得超过3689个赞
知道大有可为答主
回答量:3724
采纳率:78%
帮助的人:1271万
展开全部
你是在类B的内部创建类A的对象么?
那非常简单,在类B的内部写(private还是public块都行,根据具体情况)
A a;
或者
A *a = new A();
当然前提是A的构造函数是无参的,如果有参数要写上实参

如果是说你的类B继承了类A(即类B是类A的派生类),你想用new创建上转型对象,就成了
A *a = new B();
更多追问追答
追问
我是这样写的
在B.h的 private下 A *a;在B.cpp中a=new B;

其实我想问的是
A中的函数比如 void A::fn()
在B中应该怎么调用呢?
追答
如果没有继承关系的话,调用方法不变
但你必须在B的成员函数中才能调用对象a的成员函数
不能直接写在private或public块,必须写在成员函数里(构造函数或析构函数里面也可以写)
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式