我对C ++中的表达式,副作用,类型和值感到困惑?

时间:2015-10-03 02:30:03

标签: c++

我老师递给我这份家庭作业。作为一个初学者,我只是不确定从哪里开始,或者这个图表甚至要求什么。有人可以简单地向我解释这一切吗?老师要我们填写类型,副作用(如果适用)和价值:

http://i172.photobucket.com/albums/w32/Ravela_Smyth/Graph%201_zpslyxjgpde.jpg) (http://i172.photobucket.com/albums/w32/Ravela_Smyth/Graph%202_zpskoo3upjw.jpg

编辑:为什么我一直被标记下来?我不明白我做错了什么?

1 个答案:

答案 0 :(得分:0)

很简单:

表达式,代码的某些部分,它可以执行某些操作,例如a + b

类型,它询问,表达式的结果类型是什么,在C ++中可能会变得棘手:)。

Side-Effects,该语句具有某种结果类型和结果,但表达式可以同时更新过程中的一些变量作为sife效果。

以下是一个例子:

int i = 0;
int j = 0;
int k = 1;

auto rslt = cout << ++i << ( j += 2) << (k *= 5);

//now type of rslt would be? => &ostream, because &cout is of type ostream
// and we used overloaded operators for ostream and that overloaded operator
// is always returning ostream
// I hope you know auto, auto is leaving the decision about type on the compiler.
在屏幕上

会有:125 现在的副作用:

++i // side effect of the operation is i:  1
(j += 2) // side effect of the operation is j: 2
(k *= 5) // side effect of the operation is k: 5

值为cout。