是一个 值 , 不是引用 ;
传递的是 引用 的话 , 那么 外部的对象 和 实参值 是相同的对象 ;
传递的是 值 的话 , 那么 实参 只是 外部的对象 的 副本值 , 在 for_each 函数中..., 无论如何操作改变实参 , 都不会影响到 外部的对象 ;
如果 在 for_each 算法中 调用了 函数对象 , 函数对象中 有 状态改变 ;
在 for_each 算法 外部 继续调用该 函数对象...函数对象 时 , 发现状态值 还是 0 , 这说明 值传递 改变的是 函数对象实参副本值 , 没有影响外部的 函数对象 值 ;
0 . 666
代码示例 :
#include "iostream"
using...值传递 , 传递的 只是 函数对象副本 , 副本的 状态改变 不会影响到外部函数 ;
如果想要 保留上述 状态改变 , 则需要使用 函数对象 接收 for_each 的返回值 , 这个函数对象 保留了...内部 函数对象参数副本 的状态值 ;
使用 PrintT printT; 函数对象 变量 , 接收 for_each 算法的返回值 , 再次执行该 函数对象 调用 , 发现 状态值被保留了下来