by reference,by value的问题,请教!

tangshuiling tangshuiling 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

代码如下:
#include <iostream>
#include <iterator>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;
class IntSequence
{
private:
int value;
public:
IntSequence( int init):value(init){}
int operator()()
{
return value++;
}
void getvalue()
{
cout<<value<<endl;
}
};
int main()
{
vector<int> coll;
IntSequence seq(13);
generate_n<back_insert_iterator<vector<int> >,int,IntSequence&>(back_inserter(coll),9,seq);
//by reference方式,对象seq的成员变量value应该会随之变化
seq.getvalue();
//然而,输出value仍然为13,不解,由此对vs2005产生了疑问?
generate_n(back_inserter(coll),9,seq);
copy(coll.begin(),coll.end(),ostream_iterator<int>(cout," "));
return 0;
}


...全文
评论 6
收藏 已收藏
分享
返回顶部
tangshuiling
C++ 语言 65,214 成员 250,514 内容