C++为什么要动态创建对象
除了动态创建数组以外,动态创建对象又什么特殊的好处吗,和定义一个变量和一个指针,再用指针指向变量比不是更麻烦(容易内存泄露)吗...
除了动态创建数组以外,动态创建对象又什么特殊的好处吗,和定义一个变量和一个指针,再用指针指向变量比不是更麻烦(容易内存泄露)吗
展开
5个回答
展开全部
一、可以最大程度节省资源:
比如一个程序,它可以处理很多东西,
1, 可以处理一个五万人的学校的所有学生的资料。
2, 可以处理一个几十人的小班级。
1)如果用静态的分配,比如说,数组。当知道要处理这些问题的时候,要定义一个50000 长度的数组才能解决问题。这时候,当用这个程序去处理班级资料。这里分配的大量的内存地址都会造成了浪费。
2)要处理50000人以上的学校的资料,又会出现分配不足的问题。需要重新修改代码。(这就是很麻烦的事情了)这个在C++上叫溢出。
3)使用动态分配内存的好处。动态的话,就是使用多少,就用多少。根据输入的数据大小来分配内存。比如说,这个程序处理50人的小班级,则会分配50个空间。当增加一个人的时候,则程序就能自动在后面再加一个空间。
二、优点如下:
1,不会造成浪费,基本上都是有多少用多少。
2,能够随时增加,减少。
程序的灵活性更高。也不会出现分配不足的问题。
比如一个程序,它可以处理很多东西,
1, 可以处理一个五万人的学校的所有学生的资料。
2, 可以处理一个几十人的小班级。
1)如果用静态的分配,比如说,数组。当知道要处理这些问题的时候,要定义一个50000 长度的数组才能解决问题。这时候,当用这个程序去处理班级资料。这里分配的大量的内存地址都会造成了浪费。
2)要处理50000人以上的学校的资料,又会出现分配不足的问题。需要重新修改代码。(这就是很麻烦的事情了)这个在C++上叫溢出。
3)使用动态分配内存的好处。动态的话,就是使用多少,就用多少。根据输入的数据大小来分配内存。比如说,这个程序处理50人的小班级,则会分配50个空间。当增加一个人的时候,则程序就能自动在后面再加一个空间。
二、优点如下:
1,不会造成浪费,基本上都是有多少用多少。
2,能够随时增加,减少。
程序的灵活性更高。也不会出现分配不足的问题。
展开全部
好处当然有很多!!LS说的是一个 还有最重要的 可以按需求分配内存。
提高系统资源的利用率。
需要多少就分配多少
一口气分配了 会出现很多无用的内存占用。
提高系统资源的利用率。
需要多少就分配多少
一口气分配了 会出现很多无用的内存占用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
比如一个程序在运行时需要根据用户需求创建若干个类A的对象,你代码怎么写? A a,b,c...?静态创建对象是行不通的.
这时候就要动态创建了
动态开辟内存灵活,特殊的数据结构用动态对象才好
这时候就要动态创建了
动态开辟内存灵活,特殊的数据结构用动态对象才好
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这就是c++和java的不同了,java开辟的空间是自动清理不用的内存,而c++开辟的就需要程序员自己来释放不用的内存,来避免内存泄漏。动态开辟可以有效的管理内存
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
自由开辟孔空间!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询