zoukankan      html  css  js  c++  java
  • 对象中的其他小细节

    【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)

    赋值与复制的区别

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

  • 相关阅读:
    MINIX文件系统
    Cmd Markdown 语法
    asp.net mvc 4 json大数据异常 提示JSON字符长度超出限制的异常[转载]
    echart 拖拽
    搭建django开发环境
    Django 1.11.7+django_pyodbc_azure-1.11.0.0+pyodbc 连接mssql 数据库
    二、PyCharm 创建Django 第一个项目
    一、Django 安装
    python 连接各类主流数据库简单示例【转载】
    Python 3.6 连接mssql数据库(pymssql 方式)
  • 原文地址:https://www.cnblogs.com/fengdashen/p/3889588.html
Copyright © 2011-2022 走看看