课程
/后端开发
/C++
/C++远征之封装篇(下)
Line:Line(int x1,int y1,int x2,int y2):m_coorA(x1,y1),m_coorB(x2,y2)
{
}
2015-11-26
源自:C++远征之封装篇(下) 2-7
正在回答
因为要调用父类的有两个参数的那个构造函数,如果初始化放在子类的构造函数中而不用初始化列表,很难调用父类的有两个参数的那个构造函数,当然你可以在子类的构造函数中这样写:m_coorA.x = x1;m_coorA.y = y1;m_coorB.x = x1;m_coorB.y = y1;这样写可以达到初始化的目的,但写的代码就多了,直接调用父类的有两个参数的那个构造函数就简单多了,所以选择用初始化列表。
雲野 提问者
雲野 提问者 回复 DoDream
实例化Line时,要先实例化m_coorA和m_coorB,但是这两个对象没有默认构造函数,所以要用初始化列表。(初始化列表执行 在构造函数之前!!!)
举报
封装--面向对象三大特征之一,通过案例让C++所学知识融会贯通