-
如果对象A中有对象成员B,对象B没有默认构造函数,那么对象A必须在初始化列表中初始化对象B。查看全部
-
用初始化列表的方式初始化对象成员,以严格区分哪些值传给哪个对象<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赋值,也就是初始化坐标。 简单来说,初始化列表其实就是 数据(对象)成员((默认)形参) 的方式虚实结合传递的查看全部
-
#include "Line.h" #include <iostream> using namespace std; Line::Line(int x1,int y1,int x2,int y2):m_coorA(x1,x2),m_coorB(x2,y2) { cout <<"Line()" <<endl; } Line::~Line() { cout <<"~Line" <<endl; } void Line::setA(int x,int y) { m_coorA.setX(x); m_coorA.setY(y); } void Line::setB(int x,int y) { m_coorB.setX(x); m_coorB.setY(y); } void Line::printInfo() { cout << "(" << m_coorA.getX() <<"," << m_coorA.getY() <<")"<<endl; cout << "(" << m_coorB.getX() <<"," << m_coorB.getY() <<")"<<endl; } #include <iostream> #include <stdlib.h> #include "Line.h" using namespace std; int main(void) { Line *p = new Line(1,2,3,4); p->printInfo(); delete p; p = NULL; system("pause"); return 0; }查看全部
-
装箱的时候先装零件,拆箱的时候先把箱子拆开。查看全部
-
当实例化 Line 对象时,会先实例化 m_coorA 这个对象 ,再实例化 m_coorB 对象,然后再实例化 Line 这个对象。 销毁过程则与这个过程正好相反,先销毁 Line 对象,再销毁 m_coorB 对象,最后销毁 m_coorA 对象。 就是先造零部件 m_coorA 坐标对象,m_coorB 坐标对象,在组装成体 Line对象 ,销毁就是按照相反的方向拆解。 对象作为数据成员就是一个对象的数据成员有很多个对象组成 在 new line 的时候就会自动实例化坐标对象 m_coorA,m_coorB查看全部
-
delete时没有[]将只会清除第一个元素的内存 会造成内存泄露 如果是堆中开辟了对象数组,delete p 则销毁的是第一个元素, delete []p 则会销毁一个对象数组查看全部
-
[0]的位置是相对于指针p指向而言,当p++;后,p[0]指向第二个元素! p经处理后可能已指向不是最初的内存地址,所以必须还原后才能delete查看全部
-
栈中实例化 Coordinate coord[3]; 堆中实例化 Coordinate *p=new Coordinate[3];查看全部
-
// 创建常指针p const Coordinate *p=&coor; // 创建常引用c const Coordinate &c=coor;查看全部
-
一个对象可以有多个对象常引用查看全部
-
常成员函数中可以使用普通的数据成员,但是不能改变对象成员的值查看全部
-
对象各自的this指针指向各自对象的首地址,所以不同对象的this指针一定指向不同的内存地址查看全部
-
当数据成员中含有指针时,浅拷贝会使两个对象的成员指针指向相同的内存地址。查看全部
-
//定义对象数组 Coordinate coorArr[2]; coorArr[0].m_iX=1; coorArr[0].m_iY=2; coorArr[1].m_iX=3; coorArr[1].m_iY=4;查看全部
-
实例化对象A时,如果对象A有对象成员B,那么先执行对象B的构造函数,再执行A的构造函数查看全部
举报
0/150
提交
取消