社区
C++ 语言
帖子详情
c++里面创建对象,什么时候应该用new什么时候应该直接创建?
jdfhgfdkh
2008-07-07 03:47:15
c++里面, 创建对象, ClassName object(初始化参数);在Stack栈里面分配空间,自动释放。
或者用 ClassName object=new ClassNam();在heap堆里面分配空间,要手动释放。
什么时候用哪一种来创建对象比较好呢?
小弟初学C++。以前学过java,从来都是new。所以对这个问题不很清楚。
...全文
3125
16
打赏
收藏
c++里面创建对象,什么时候应该用new什么时候应该直接创建?
c++里面, 创建对象, ClassName object(初始化参数);在Stack栈里面分配空间,自动释放。 或者用 ClassName object=new ClassNam();在heap堆里面分配空间,要手动释放。 什么时候用哪一种来创建对象比较好呢? 小弟初学C++。以前学过java,从来都是new。所以对这个问题不很清楚。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hurry281
2008-07-08
打赏
举报
回复
分配空间的大小,以及对象的多少不确定时
lijianjoin
2008-07-08
打赏
举报
回复
动态的new,非动态的不用new,
不定长的new,定长的不new
我认为new是c++的关键。可以事先多态等等。
jy01807853
2008-07-08
打赏
举报
回复
当你不确定需要多大的时候用NEW
类里面用NEW实现多态, 有的时候解决类
接口也用NEW, 这个一下说不清楚
用NEW有一定内存泄露的风险, 可以考虑用
C++标准库设施
jdfhgfdkh
2008-07-08
打赏
举报
回复
谢谢各位! 因为分太少,没办法只好给几位完全回答我问题的。
DarknessTM
2008-07-08
打赏
举报
回复
c++里需要自己回收空间,所有 new 出现的很多 容易造成内存碎片多,其他其实也没什么……
要是讲究效率 还可以利用自己的内存池……
lily604
2008-07-08
打赏
举报
回复
[Quote=引用 12 楼 hurry281 的回复:]
分配空间的大小,以及对象的多少不确定时
[/Quote]
我看你有戏
2008-07-08
打赏
举报
回复
比如读文件的时候
你可以定义一个数组 BYTE pBuff[4000*1024]; 用来存放文件数据
这样如果文件很小就会浪费内存空间,文件很大则文件数据不能全部读出
所以在读文件的时候需要根据文件的size来开辟一块内存
BYTE *pBuff = new BYTE[size]使这块内存刚刚好可以存放文件数据
像这种情况就需要new 了
开心爸爸84
2008-07-07
打赏
举报
回复
[Quote=引用 3 楼 Lucky1118 的回复:]
个人认为,new能不用就不用
[/Quote]
顶
elegant87
2008-07-07
打赏
举报
回复
当你不知道要创建多少对象的时候,有new比较好,动态分配。
如:
int *a=new int[20];
记得要delete呀
delete [] a;
偶像罗斯福
2008-07-07
打赏
举报
回复
[Quote=引用 6 楼 artman 的回复:]
什么时候用哪一种来创建对象比较好呢?
new以下情况可以使用
1 申请对象数量不确定时
2 需要空间较大时
[/Quote]
自己管理内存可以可以节省空间。
artman
2008-07-07
打赏
举报
回复
什么时候用哪一种来创建对象比较好呢?
new以下情况可以使用
1 申请对象数量不确定时
2 需要空间较大时
no111
2008-07-07
打赏
举报
回复
如果类体积很大,还是用 new 比较好.
毕竟栈的空间有限
languagec
2008-07-07
打赏
举报
回复
class 就相当于变量类型,什么时候用new 什么时候直接定义, 和普通的变量类型一样.
Lucky1118
2008-07-07
打赏
举报
回复
个人认为,new能不用就不用
yyyapple
2008-07-07
打赏
举报
回复
ClassName object(初始化参数);在Stack栈里面分配空间,自动释放。
不一定在栈中,比如全局变量
说一点
就类来讲,动态分配比较灵活,并且更能够体现多态特性;
楼下继续
xkyx_cn
2008-07-07
打赏
举报
回复
1,2句话讲清楚真的很难,更特别的是从java转向c++……
朱老师
C++
课程第5部分- 5.3.
C++
版设计模式之
创建
型模式
《朱老师带你学
C++
》属于系列课程《朱有鹏老师热门编程语言全解》的第5部分,主要针对
C++
语言学习。本课程可以看做是嵌入式linux核心课程中《C语言专题》课程的延续,在学好了C语言前提下继续深度学习
C++
语言。整个课程共分为5部分。涵盖了
C++
基础语法和使用,面向对象,STL与泛型,Boost库和设计模式,
C++
编程优化技巧等非常广泛的内容,是市面上非常缺少的深度完整学习
C++
,培养编程技能和修养的一套系列学习课程。朱老师
C++
第1部分-从C到
C++
朱老师
C++
第2部分-
C++
和面向对象朱老师
C++
第3部分-STL等和泛型朱老师
C++
第4部分-
C++
编程优化和常见面试题朱老师
C++
第5部分-Boost库和设计模式 课程特色*深入浅出,通俗易懂。不怕学不会,就怕你不学习。*思路清晰、语言风趣,对着视频看也不会想睡觉······*视频 + 文档 + 练习题 + 答疑相结合。*基础知识 + 思路引导的教学方式,授之以鱼更授之以渔。*系列课程。本教程只是入门篇,后续还有更多更精彩视频更新中。
【
C++
】
创建
对象
之
new
关键字
起初刚学
C++
时,很不习惯用
new
,后来看老外的程序,发现几乎都是使用
new
,想一想区别也不是太大,但是在大一点的项目设计中,有时候不使用
new
的确会带来很多问题。当然这都是跟
new
的用法有关的。
new
创建
类对象,使用完后需使用delete删除,跟申请内存类似。所以,
new
有时候又不太适合,比如在频繁调用场合,使用局部
new
类对象就不是个好选择,使用全局类对象或一个经过初始化的全局类指针似乎更加高...
c++
创建
对象
需不需要用
new
如果使用
new
创建
类对象的话返回的是指向对象的指针。如果不使用
new
创建
类对象的话返回的是对象的拷贝。那么,
C++
什么时候用
new
,什么时候不用
new
?
C++
用
new
和不使用
new
创建
对象
的区别
一、
new
创建
类对象与不
new
区别
new
创建
类对象需要指针接收
new
创建
类对象使用完需delete销毁
new
创建
对象
直接
使用堆空间,而局部不用
new
定义类对象则使用栈空间
new
对象指针用途广泛,比如作为函数返回值、函数参数等 频繁调用场合并不适合
new
,就像
new
申请和释放内存一样 二、
new
创建
对象
实例 1. 使用
new
创建
对象
CTest* pTest =
new
CTest(); delete pTest; pTest是用来接收类的对象指针。
new
申请的对象,则只..
C++ 语言
64,637
社区成员
250,559
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章