为了账号安全,请及时绑定邮箱和手机立即绑定
解析:堆中实例化的数组需要手动销毁释放内存,在栈中实例化的数组,系统自动回收内存
WCZ
听是可以听懂, 就是老师取得变量名念起来的时候把我整蒙了
sizeof(p)表示该指针变量的内存空间大小。
sizeof(Line)表示该类的所有成员变量所占内存空间的大小
注意函数的执行顺序,析构函数是最后才调用的,调用时会执行内部释放对象成员指针的语句,所以,成员对象指针会先进行析构释放,然后才是coordinate的对象

宁外请注意:

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

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

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

最新回答 / weixin_慕盖茨506606
兄弟,你把坐标系根据数据排列规律绘制就好了呀,这样就避免了8-x的转换

最赞回答 / 慕运维3124395
所有对象成员没有默认构造函数就都得使用初始化列表进行初始化,因为没有默认构造函数就没有办法初始化赋值。当你设置了默认构造函数之后,系统在你初始化对象的时候就会使用你设置的默认构造函数,而不会使用系统自己定义的。默认构造函数的要求是无参数,或者参数全为默认值。

已采纳回答 / 慕运维3124395
1.2均不合法,3存在语法错误数组符号代表进行一次访问,1中p[1]代表访问到了第二个对象,此时再用->再次访问就不合理了;p中存放的地址是第一个对象的,p+1代表第二个对象的地址,此时p+1还未进行访问操作,直接使用.取成员依旧是不合理的;同理p+1代表一个指针存放第二个对象的地址,可以进行访问拿到m_x这个成员,但是p+1应该加上小括号,因为->的优先级高于+;

已采纳回答 / weixin_慕先生4379386
问题一:是不需要的  直接int arr[] 就好问题二 :自己定义的.h用“” ,c++库的用<>
Coordinate的指针原型不是Coordinate *this;而是Coordinate *const this;

已采纳回答 / AlexPan0610
视频中的代码是 cout << "arr.m_iCount" << arr.getCount() << endl;虽然提示信息写的是"arr.m_iCount",实际访问的方法是arr.getCount()。

已采纳回答 / 慕少4459268
构造函数和析构函数的执行顺序相反,可以回去看看讲这个视频

最新回答 / 慕少4459268
const是在栈上,栈空间是自动释放;堆空间是需要你去释放的。

最新回答 / 慕码人8215885
m_coorA是Coordinate的对象,而line公共继承了Coordinate这个类,所以line类的成员函数setA()可以访问基类Coordinate的成员函数setX(),setY()

最新回答 / weixin_慕UI0048803
父类下面有很多子类,需要使用相同代码调用不同子类的方法,此时就会遇到别人操作自己的内存,建议了解以下设计模式,对这个视频将会更好理解
那两张图配的,我都忘了听你在讲啥了,哈哈哈哈哈
课程须知
本课程是C++初级课程 需要掌握C++语言基础语法 如果不太熟悉的话,可以观看: 《C++远征之起航篇》 《C++远征之离港篇》 《C++远征之封装篇(上)》
老师告诉你能学到什么?
1、对象数组的定义和使用 2、对象成员的定义和使用 3、深拷贝和浅拷贝 4、对象指针、对象引用的定义和使用 5、常对象指针、常对象引用、常成员函数的定义和使用

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消