-
对象成员的执行顺序:
生成A-->生成B-->生成线段
销毁线段-->销毁B-->销毁A
Line *p = new Line(1,2,3,4); Line(int x1,int y1,int x2,int y2); //线段类中声明构造函数 Line::Line(int x1, int y1, int x2, int y2):m_coorA(x1, y1), m_coorB(x2,y2){} //类外定义构造函数 Coordinate(int x,int y); //坐标类(成员类)中声明构造函数 Coordinate::Coordinate(int x,int y):m_iX(x),m_iY(y){} //类外定义构造函数
查看全部 -
(1)在栈中实例化对象数组
Coordinate coor[3];
调用3次构造函数,且程序结束时系统会自动调用3次析构函数,自动回收内存。
(2)在堆中实例化对象数组
Coordinate *p = new Coordinate[3]; p->m_iX = 11; p[0].m_iY = 13; p[1].m_iX = 15; p++; p->m_iY = 17; p--; delete []p; p = NULL;
调用3次构造函数,3次析构函数。要注意的是:
在堆中实例化对象,用完后需要手动释放内存,以免造成内存泄漏;
释放数组内存delete []p,指针p要回到数组第一个元素的位置,且要加中括号[],否则只会调用一次析构函数,释放数组最后一个元素的空间。
查看全部 -
p[0]一开始指向第一个元组,当p++之后,p[0]指向了第二个元组,p[1]指向了第三个元组
查看全部 -
调用三次构造函数
查看全部 -
尽量不使用p++遍历。不容易维护,也给其他人理解代码制造障碍。查看全部
-
。。。。。。
查看全部 -
数组实例化:多个对象
查看全部 -
常成员函数中thsi被const修饰成为常指针无法写
查看全部 -
this指针默认要求有读写权限,而const修饰后只有读权限
查看全部 -
对象成员需要外层对象传参进行构造时必须采用初始化列表的方式
查看全部 -
对象各自的this指针指向各自对象的首地址,所以不同对象的this指针一定指向不同的内存地址
查看全部 -
注意事项,用枚举类型表示方向。,敞亮定义
查看全部 -
类似的程序
查看全部 -
动画控制函数
查看全部 -
定义一个人类
查看全部
举报
0/150
提交
取消