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

【求助】关于打印结果顺序的问题

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

代码和视频中的代码一样,就是对打印的结果顺序有疑问。

结果中的“~Line”

对应代码是“cout << "~Line()" << endl;”


结果中的“printInof()

                 (1,2)

                  (3,4)”

对应的代码是:

“cout << "printInfo()" << endl;

cout << "(" << m_pCoorA->getX() << "," << m_pCoorA->getY() << ")" << endl;

cout << "(" << m_pCoorB->getX() << "," << m_pCoorB->getY() << ")" << endl;“


“~Line”的cout打印出来的,而且其代码位置在上面,为什么打印出后却排在了后面?


正在回答

2 回答

构造函数和析构函数的执行顺序相反,可以回去看看讲这个视频

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

慕侠7062219 提问者

哦哦,好的谢谢
2019-08-05 回复 有任何疑惑可以回复我~

请看两者执行顺序。

注意函数的执行顺序,析构函数是最后才调用的

宁外请注意:

对象成员如果无默认构造函数则必须在当前对象构造函数后使用初始化列表进行初始化,此时构造函数顺序为对象成员的构造函数coordinate,当前对象的构造函数line。

对象成员指针,则应该在当前对象的构造函数中调用本身的构造函数初始化,此时构造函数调用顺序为当前对象的构造函数line,对象成员指针的构造函数coordinate。

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

举报

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

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

进入课程

【求助】关于打印结果顺序的问题

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