-
Coordinate类没有定义默认构造函数,且因为已经定义了一个构造函数,故编译器也不会为你自动生成一个默认构造函数。可是在main函数中,定义了一个Coordinate数组,这会对每一个元素进行初始化,如果不在定义的时候按照自己写的构造函数初始化,由于没有默认构造函数,所以没有匹配的调用,编译失败。查看全部
-
B 实例化对象A时,如果对象A有对象成员B,那么先执行对象B的构造函数,再执行A的构造函数。 C 如果对象A中有对象成员B,那么销毁对象A时,先执行对象A的析构函数,再执行B的析构函数。 D 如果对象A中有对象成员B,对象B没有默认构造函数,那么对象A必须在初始化列表中初始化对象B。查看全部
-
如果坐标类含有一个默认构造函数(即不带参数的构造函数),那么它在实例化线段对象的时候可以不使用初始化列表; 如果坐标类要求必须有xy传入,那么从线段类必须有xy传入,并使用初始化列表查看全部
-
先创建两个坐标类的对象,然后调用线段的对象; 销毁时先调用线段的析构函数,再调用坐标的析构函数; 装箱:零件 - 箱子 拆箱:箱子 - 零件查看全部
-
改进: 需要在构造函数中建立初始化列表(两个数据成员),把参数传入到两个数据成员的构造函数中去。查看全部
-
含有其他对象的对象的构造函数的参数的传递查看全部
-
销毁调用了其他对象的对象的顺序: 先销毁大的line(线段),再销毁line的数据成员 coordinate(坐标)查看全部
-
delete []p: 加上[]能销毁所有的元素,如果不加只销毁第一个元素 其实就是调用了p中的析构函数查看全部
-
栈中实例化对象数组: Coorinate coord[3]; coord[1].m_iX = 10;(m_iX为public) 堆中实例化对象数组: Coordinate *p = new Coordinate[3];(分配三次内存,调用三次构造函数) p[0].m_iY = 20; (数组的第一个成员) p->m_iY = 20;(数组p) //销毁三次,调用三次析构函数 delete []p; p = NULL; return 0; 两种方式都可以 分配内存的时候 heap:p向下指 p+1 p+2.. stack:最晚放的最先取出查看全部
-
常指针常引用 调用 常成员函数 与成员函数查看全部
-
初始化列表初始化类对象查看全部
-
const 常数据类型 用初始化列表来初始化 在其一遍查看全部
-
当实例化对象时 this指针查看全部
-
对象成员 与对象成员指针 之间的 ;; 类里头有类 ,主要是构造函数与成员列表的使用。。。。、查看全部
-
class line 占据八个内存单元,32位系统地址占据4个内存单元,Coordinate在堆中生成,坐标是在栈中生成的 我也讲不清楚了查看全部
举报
0/150
提交
取消