现在的位置: 首页 > 综合 > 正文

返回vector对象与引用的区别

2012年08月12日 ⁄ 综合 ⁄ 共 260字 ⁄ 字号 评论关闭
struct tagItem
{
int a;
int b;
}
//假如在A类中定义成员:
vector<tagItem> m_vecItem;
vector<tagItem> A::f()
{
return m_vecItem;//tagItem需要定义拷贝构造函数,否则m_vecItem即使在别处push_back了,每一个元素的a,b成员不会拷贝过去而保持初值(0之类的值)
}

vector<tagItem>& A::f()
{
return m_vecItem;
}

因为stl容器都是基于拷贝,故不仅是vector,其它容器返回引用或对象都有此差异。

抱歉!评论已关闭.