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

为什么要强制转换成int*类型,不能用Shape和Circle类型呢?

1。为什么要强制转换成int*类型,不能用Shape和Circle类型呢?输出指针q,p的地址都一样啊,但是用Circle类型的指针输出*q会报错,不理解为什么?

2。而且把Circle类中的m_iR,改成short,long,char类型就会正确输出100,改成double类型就会显示0,为什么?是因为它的指针是int类型吗?但是long不是也是占8个字节吗?怎么可以正常显示100,double就不行?

3。给Circle类中添加一个变量,如果第一个变量是short,char类型的,就会输出同一个数字4224868,这个数字是什么?

正在回答

2 回答


要取的值是 int m_iR,所以用指针取值,就要用int指针。


与下面的代码同理:

如果你定义了int x = 1;你想取值,也是定义一个int *p去指向int x,然后取值。

int x = 1;
int *p = &x;

cout << *p << endl;


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

因为int类型占四个字节啊

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

举报

0/150
提交
取消
C++远征之多态篇
  • 参与学习       66236    人
  • 解答问题       314    个

本教程将带领大家体会面向对象三大特性中的多态特性

进入课程

为什么要强制转换成int*类型,不能用Shape和Circle类型呢?

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