首页 > 代码库 > 对象中的其他小细节
对象中的其他小细节
【1】学会动态分配内存
用前面介绍的方法定义的对象是静态的,在程序运
行过程中,对象所占的空间是不能随时释放的。但
有时人们希望在需要用到对象时才建立对象,在不
需要用该对象时就撤销它,释放它所占的内存空间
以供别的数据使用。这样可提高内存空间的利用率
Box *pt=new Box(12,15,18);这种写法是把上面两个语句(定义指针变量和用new建立新对象)合并为一个语句,并指定初值。这样height width和length更精炼。新对象中的height width lengthheight,width length分别获12,15,18
释放内存
delete pt;
【2】对象的赋值和复制
赋值:直接用 = 号
对象之间的赋值也是通过赋值运算符“=”进行的。
本来,赋值运算符“=”只能用来对单个的变量赋
值,现在被扩展为两个同类对象之间的赋值,这是
通过对赋值运算符的重载实现的。
对象名1 = 对象名2;
注意事项:
(1) 对象的赋值只对其中的数据成员赋值,而不对
成员函数赋值。
(2) 类的数据成员中不能包括动态分配的数据,否
则在赋值时可能出现严重后果。
复制:有时需要用到多个完全相同的对象。此外,有时需
要将对象在某一瞬时的状态保留下来。这就是对象
的复制机制。用一个已有的对象快速地复制出多个
完全相同的对象
Box box2(box1);其作用是用已有的对象box1box1去克隆出一个新对象box2。其一般形式为类名 对象2((对象1)
赋值与复制的区别
对象的赋值是对一个已经存
在的对象赋值,因此必须先定义被赋值的对象,才
能进行赋值。而对象的复制则是从无到有地建立一
个新对象,并使它与一个已有的对象完全相同(包
括对象的结构和成员的值
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。