为了账号安全,请及时绑定邮箱和手机立即绑定
  • 对于对象成员来说,如果使用 sizeof ,指的是里面所有对象的体积总和,里面有两个 int 型的 m_iX,m_iY 共占用8个内存单元,而Line 中有2个 Coordinate 对象,所有对象成员体积总和是 16 ,如果是对象成员指针,每个对象成员指针占 4 个内存单元,因此sizeof 占 8 个内存单元。可以这么理解,因为 Line 中是指针而不是对象,因此不是占用 2 个 int 型 的数据,指针在 Line 对象中而拥有 int 型数据的 Coordinate 对象不在 Line 对象中,Coordinate 对象是在堆中。也就是 Line 中的大小为2个指针的大小。
    查看全部
  • 对象成员指针 实例化 Line 的时候,先调用 Coordinate 构造函数,再调用 Line 构造函数,销毁的时候,先销毁堆中的对象即 Coordinate 对象,再销毁 Line 对象。跟对象成员有区别,对象成员会先销毁 Line 对象,再销毁内层的 Coordinate 对象。
    查看全部
  • 对象成员:一个对象作为另外一个类的数据成员<br><br><br> 对象成员指针:一个对象的指针作为另外一个类的数据成员<br><br> 1.对象成员指针的定义: 类名 * 指针名 是指针而不是对象<br> 2.指针在32位编译器下占4个基本内存单元<br><br> 3.若存在对象成员指针1,2……。sizeof(指针1,指针2……)只计算各指针所占内存的总和,不计算对象成员所占内存<br> 对象成员指针如果在构造函数用 new 的方式从堆中申请内存实例化2个 Coordinate 对象,那这2个对象都是在堆中,而不在 Line 对象中,因为每个指针占 4 个内存单元,因此 sizeof(Line) 只占 8 个内存单元,销毁 Line 的时候,先销毁队中的内存,在释放 Line 本身的内存
    查看全部
  • 注释快捷键:Ctrl+K+C 取消注释快捷键:Ctrl+K+U 除了 new 在堆中实例化对象之外,还可以 对象名.标识符 的方法在栈中实例化对象,在栈中实例化对象之后,可以 对象名.指针 的方法建立一个指针对象,然后指针指向第一个实例化对象 &p1 ,就可以通过操作 第二个指针对象来访问第一个对象的 数据成员
    查看全部
  • 深拷贝 通过 Array arr2(arr1); 的方式并没有执行构造函数,而是直接执行了 拷贝函数。 通过 m_pArr = arr.m_pArr; 传递的是首地址。 深拷贝是在 拷贝函数 中重新分配一段内存,再将数据存进去
    查看全部
  • 浅拷贝易造成内存数据重写以及释放被拷贝对象内存时造成新的对象指向一个被销毁的内存 浅拷贝:将一个对象的对应的成员数据赋给另一个对象,但是他们所指向的是同一块内存中的数据。 深拷贝:将一个对象的对应的成员数据赋给另一个对象,但是他们是占用不同的内存存储相同的成员数据(涉及到指针)。 http://www.imooc.com/video/7421 const Array &arr 就是给 Array 类型的对象取别名,就跟 int &a 作为形参,直接传递进来 int x 的 x 变量一样 深度拷贝是在拷贝函数里面重新开辟一段内存(new int[m_iCount])再将被拷贝的数据写到新的内存空间上
    查看全部
  • 如果对象A中有对象成员B,对象B没有默认构造函数(也就是有参数传递),那么对象A必须在初始化列表中初始化对象B
    查看全部
    1 采集 收起 来源:练习题

    2015-12-05

  • 用初始化列表的方式初始化对象成员,以严格区分哪些值传给哪个对象<br> 初始化列表的时候写 m_coorA(x1,y2),m_coorB(x2,y2)初始化,m_coorA,m_coorB,因为 Line 的成员是对象,因此在执行初始化对象成员 m_coorA(x1,y2),m_coorB(x2,y2)的时候就会是实例化对象 m_coorA,m_coorB,m_coorA(x1,y2),m_coorB(x2,y2)是给执行对象的时候自动执行的构造函数传递参数,也就是 m_coorA(x1,y2),m_coorB(x2,y2) 会自动各自执行构造函数,从而给 Coordinate 的数据成员 m_iX,m_iY赋值,也就是初始化坐标。 简单来说,初始化列表其实就是 数据(对象)成员((默认)形参) 的方式虚实结合传递的
    查看全部
  • 当实例化 Line 对象时,会先实例化 m_coorA 这个对象 ,再实例化 m_coorB 对象,然后再实例化 Line 这个对象。 销毁过程则与这个过程正好相反,先销毁 Line 对象,再销毁 m_coorB 对象,最后销毁 m_coorA 对象。 就是先造零部件 m_coorA 坐标对象,m_coorB 坐标对象,在组装成体 Line对象 ,销毁就是按照相反的方向拆解。 对象作为数据成员就是一个对象的数据成员有很多个对象组成 在 new line 的时候就会自动实例化坐标对象 m_coorA,m_coorB
    查看全部
    0 采集 收起 来源:[C++]对象成员

    2015-12-04

  • 如果是堆中开辟了对象数组,delete p 则销毁的是第一个元素, delete []p 则会销毁一个对象数组
    查看全部
  • 指针 p 如果不加索引,则访问的是第一个元素 p[0] p++ 后再写 p[0] 则访问的是第二个元素 p[1]; p 指向第一个元素 再 delete []p; 才能释放这个对象数组。
    查看全部
  • 对象成员:一个对象作为另外一个类的数据成员 对象成员指针:一个对象的指针作为另外一个类的数据成员
    查看全部
  • 深拷贝工作:首先申请一段内存,然后需要将传入进来的对象arr对应位置的内存拷贝到申请的这段内存中去
    查看全部
  • 迷宫主函数
    查看全部
    0 采集 收起 来源:开篇案例

    2015-12-02

  • 动画控制
    查看全部
    0 采集 收起 来源:开篇案例

    2015-12-02

举报

0/150
提交
取消
课程须知
本课程是C++初级课程 需要掌握C++语言基础语法 如果不太熟悉的话,可以观看: 《C++远征之起航篇》 《C++远征之离港篇》 《C++远征之封装篇(上)》
老师告诉你能学到什么?
1、对象数组的定义和使用 2、对象成员的定义和使用 3、深拷贝和浅拷贝 4、对象指针、对象引用的定义和使用 5、常对象指针、常对象引用、常成员函数的定义和使用

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!