• 对象中的其他小细节


    【1】学会动态分配内存

      用前面介绍的方法定义的对象是静态的,在程序运
      行过程中,对象所占的空间是不能随时释放的。但
      有时人们希望在需要用到对象时才建立对象,在不
      需要用该对象时就撤销它,释放它所占的内存空间
      以供别的数据使用。这样可提高内存空间的利用率

    Box *pt=new Box(12,15,18);
    
    这种写法是把上面两个语句(定义指针变量和用new
    建立新对象)合并为一个语句,并指定初值。这样
    height width和length更精炼。新对象中的height width length
    height,width length分别获
    12,15,18

       释放内存

    delete pt;

    【2】对象的赋值和复制

      赋值:直接用 = 号

      对象之间的赋值也是通过赋值运算符“=”进行的。
      本来,赋值运算符“=”只能用来对单个的变量赋
      值,现在被扩展为两个同类对象之间的赋值,这是
      通过对赋值运算符的重载实现的。
      对象名1 = 对象名2;
    注意事项:
      (1) 对象的赋值只对其中的数据成员赋值,而不对
      成员函数赋值。
      (2) 类的数据成员中不能包括动态分配的数据,否
      则在赋值时可能出现严重后果。

    复制:有时需要用到多个完全相同的对象。此外,有时需
      要将对象在某一瞬时的状态保留下来。这就是对象
      的复制机制。用一个已有的对象快速地复制出多个
      完全相同的对象

    Box box2(box1);
    其作用是用已有的对象box1
    box1去克隆出一个新对象box2。
    
    其一般形式为
    类名 对象2((对象1)

    赋值与复制的区别

      对象的赋值是对一个已经存
      在的对象赋值,因此必须先定义被赋值的对象,才
      能进行赋值。而对象的复制则是从无到有地建立一
      个新对象,并使它与一个已有的对象完全相同(包
      括对象的结构和成员的值

  • 相关阅读:
    Notes of Daily Scrum Meeting(12.18)
    Notes of Daily Scrum Meeting(12.17)
    Notes of Daily Scrum Meeting(12.16)
    Notes of Daily Scrum Meeting(12.8)
    Notes of Daily Scrum Meeting(12.5)
    Notes of Daily Scrum Meeting(12.3)
    Notes of Daily Scrum Meeting(11.12)
    Linux中profile、bashrc、bash_profile之间的区别和联系
    Linux GCC编译
    mysql 5.7.16 远程连接
  • 原文地址:https://www.cnblogs.com/fengdashen/p/3889588.html
Copyright © 2020-2023  润新知