为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在Line.h中实例化不需要传入参数

https://img1.sycdn.imooc.com//5d69d22f000132dd07480702.jpg

https://img1.sycdn.imooc.com//5d69d22f000112f207700615.jpg

想问下,在Line.h中,

Coordinate m_coorA;

Coordinate m_coorB;

这两行代码是类的成员变量,同时也是将Coordinate类中的两个对象实例化了对吧。那么Coordinate的构造函数如图一写成了

Coordinate::Coordinate(int x,int y)

{

m_iX=x;

m_iY=y;

cout<<"did it"<<endl;

}

这是有参数的构造函数,那不是矛盾了吗?构造函数有参数,对应的对象实例化的时候却是没有参数的

正在回答

1 回答

在Line.h中,Coordinate m_coorA;Coordinate m_coorB; 仅仅是申明这个line类有这个成员,并没有实例化,所以并没执行构造函数,只有实例化时才执行构造


0 回复 有任何疑惑可以回复我~
#1

韦德之道Chen 提问者

Coordinate构造函数是被执行了的,除了在Line.h中,Coordinate m_coorA;Coordinate m_coorB这里,别的地方并没有实例化Coordinate这个类的对象。
2019-09-01 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之封装篇(下)
  • 参与学习       70919    人
  • 解答问题       514    个

封装--面向对象三大特征之一,通过案例让C++所学知识融会贯通

进入课程

为什么在Line.h中实例化不需要传入参数

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信