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

请问这样定义对象并赋值有什么问题呢?运行会报错……

Coordinate *p2;

p2->m_iX=10;

p2->m_iY=20;

cout<<p2.m_iX<<endl;

cout<<p2.m_iY<<endl;


正在回答

1 回答

Coordinate *p2;  

这个指针没有实例化 是空指针


拓展:

Coordinate *p2  = new Coordinate();//在堆上实例化,用p2指针指向这个内存

Coordinate p3();//在栈上实例化,得到p3对象

Coordinate *p4 = &p3;//p4指针,指向这个p3对象的内存


拓展2:

使用对象用   .

使用指针用  ->

p2->m_iY

p3.m_iY

p4->m_iY

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

慕的地8223948 提问者

就是说空指针无法操作吗?
2017-12-15 回复 有任何疑惑可以回复我~
#2

WORLD_CONNECTED 回复 慕的地8223948 提问者

你空指针,指向啥? int * a = new int(); a可以操作int的值, int * a ; a没有赋值。 a的值是随机的。 你可以这样想,你定义了int *a,没有给她赋值,她可能会指向你的USB接口,这不会是你想要的
2017-12-15 回复 有任何疑惑可以回复我~
#3

慕的地8223948 提问者

非常感谢!
2017-12-19 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

请问这样定义对象并赋值有什么问题呢?运行会报错……

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