
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
当C++程序用new 分配内存的时候,会比C的malloc 做一些额外的工作,尤其是使得类里面使用的STD标准库类型的变量的到合适的初始化。此外,如果有自己编写的内存管理器,new 还有一个变种: T* object = new (manager) T(), 如果需要, 请参考:
http://www.cnblogs.com/younes/archive/2010/04/26/1721528.html
展开全部
你是在类B的内部创建类A的对象么?
那非常简单,在类B的内部写(private还是public块都行,根据具体情况)
A a;
或者
A *a = new A();
当然前提是A的构造函数是无参的,如果有参数要写上实参
如果是说你的类B继承了类A(即类B是类A的派生类),你想用new创建上转型对象,就成了
A *a = new B();
那非常简单,在类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块,必须写在成员函数里(构造函数或析构函数里面也可以写)
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询