又双叒叕地来了

sweetswing 2017-08-31 06:03:31
what is the output of this code?
class A{
public:
int x;
void d(){x/=2;}
};
class B:public A{
public:
int y;
void d(){A::d();}
};
int main(){
B b;
b.x=b.y=4;
b.d();
cout<<b.y/b.x;
}
...全文
176 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
迷失丶心 2017-09-01
  • 打赏
  • 举报
回复
引用 6 楼 sweetswing 的回复:
[quote=引用 3 楼 hou09tian 的回复:]
B b;
b.x=b.y=4;
b.d();
 b.d(); A::d(); x/=2; 所以,此时b.y=4, b.x=2cishi 那么b.y/b.x=2 最终输出是2
这黑黢黢的窗口怎么调出来[/quote] VS2013以后的版本都有黑色主题。 不同版本VS窗口颜色不一样。 这个 内存窗口 在调试模式下,调试菜单->窗口->内存 可以打开。
sweetswing 2017-09-01
  • 打赏
  • 举报
回复
引用 3 楼 hou09tian 的回复:
B b;
b.x=b.y=4;
b.d();
 b.d(); A::d(); x/=2; 所以,此时b.y=4, b.x=2cishi 那么b.y/b.x=2 最终输出是2
这黑黢黢的窗口怎么调出来
迷失丶心 2017-09-01
  • 打赏
  • 举报
回复
引用 4 楼 sweetswing 的回复:
b.x=b.y=4; 没见过这样连续等号的 难道不是b.x=4 b.y=4 么? 不懂
连等 是从右往左调用的过程。 b.x=b.y=4;相当于是:

b.y = 4;
b.x = b.y;  /// b.y = 4返回值是b.y(内置数据类型 赋值运算符默认返回的是它自身)
sweetswing 2017-09-01
  • 打赏
  • 举报
回复
b.x=b.y=4;
没见过这样连续等号的
难道不是b.x=4 b.y=4 么?
不懂
棉猴 2017-08-31
  • 打赏
  • 举报
回复
B b;


b.x=b.y=4;


b.d();

 b.d(); A::d(); x/=2;

所以,此时b.y=4, b.x=2cishi 那么b.y/b.x=2
最终输出是2
paschen 2017-08-31
  • 打赏
  • 举报
回复
结果为2 b.x = b.y = 4; b.d(); //此时x=2 y=4 cout << b.y / b.x; //4/2=2
自信男孩 2017-08-31
  • 打赏
  • 举报
回复
b.y = 4, b.x = 2; b.d();是b.x /2 所以b.y/b.x = 2

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧