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

对于老师 5:43 时的代码的不解

cordinate *d = new cordinate[10];
for (int i=0; i<10; i++) {
     d[i]->x = 12;
     d[i]->print_x();
}
这样会编译错误.
如果将 d[i]->x 和 d[i]->print_x() 改为d[i].x 和 d[i].print_x() 则可得到正确结果.
我自己的理解: new 在堆中开辟了一段内存空间, 其大小为(cordinate类型大小 * 10). 并将其首地址返回给
    d 指针. 编译器给出的结果为:左操作数有“class”类型,使用“.”


正在回答

1 回答

d就是个数组

你这么写试试

(d+i)->x = 12;

(d+i)->print_x();

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

举报

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

封装--面向对象的基石,本教程力求帮助小伙伴们即学即会

进入课程

对于老师 5:43 时的代码的不解

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号