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

XCode怎么在栈中实例化对象

为什么在Xcode会报错,而老师可以这样实例化;

http://img1.sycdn.imooc.com//5a2e2ce50001f46617400902.jpg


顺便问问,拷贝构造函数实例化的对象的内存实在堆还是栈中?

    Coordinate *coor3 = new Coordinate( *coor2);

    Coordinate coor4(*coor2);//这里写成Coordinate *coor4(*coor2);会报错

    Coordinate *coor5 = coor2;

coor3 coor4 coor5 分别是在堆还是栈?

正在回答

4 回答

第一个问题可能是因为没有默认构造函数吧(只是猜测,建议试一试传入参数可不可以)

coor3实例在堆中,coor4实例在栈中,coor5只是赋了指针的值,并不是拷贝构造

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

WORLD_CONNECTED 提问者

我试了一下: 栈中实例化(调用无参构造函数): Student stu; 栈中实例化(调用有参构造函数): Student stu(1.1); 以上编译环境:XCode 9.0
2017-12-13 回复 有任何疑惑可以回复我~
#2

qtw1998 回复 WORLD_CONNECTED 提问者

你好!是因为你的默认构造函数是有参的。/var/folders/73/xwp4dbkn3ys1c2pls8s7c2ch0000gn/T/at.EternalStorms.ScreenFloat-appstore/ScreenFloatDraggingTemps/C7D4A469-8B05-41D5-A58E-20E8B4834240/Screenshot of Xcode (2018-2-4 下午5-03-03).png
2018-02-04 回复 有任何疑惑可以回复我~

g++ demo.cpp Coordinate.cpp -o demo 看看会不会报错

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

你可以在终端中用g++试试

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

我试了一下:

栈中实例化(调用无参构造函数): Student stu;

栈中实例化(调用有参构造函数): Student stu(1.1);

以上编译环境:XCode 9.0

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

举报

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

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

进入课程

XCode怎么在栈中实例化对象

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