首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++ vector传值有关问题

2013-12-21 
C++ vector传值问题为什么我明明指向了vector的地址仍然无法在main里面获得它的值?最近手滑,//传A1的引用,

C++ vector传值问题
为什么我明明指向了vector的地址仍然无法在main里面获得它的值?

最近手滑,
//传A1的引用,否则Pull里面改变的只是实参a1的副本
[解决办法]
void Pull(A1 a1) 传引用或指针;
否则main函数中的a1 传给Pull变量时,会新生产一个对象,然后将a1拷贝给它。
函数里面只是修改了a1的拷贝对象,返回时不会传出来,所以main函数的a1没有变化。

A1 a1;    
Pull(a1);     
[解决办法]
是的,你在Pull中的参数应该用引用类型。
理一下你的程序:
在main中定义对象 A1 a1; 在调用Pull后,你的a1没有得到初始化。
a1的成员变量a没有任何数据,所以你在 a1.a.at(0)的时候肯定报越界错误。

热点排行