矢量标识符没有定义,但它是?

时间:2013-11-21 09:50:50

标签: c++ vector

我正在声明某种类型的矢量;

std::vector<CBullet> m_vBullets;

我希望稍后返回矢量以分配给另一个矢量;

std::vector<CBullet> getVectorBullet()
{
    std::vector<CBullet> c;
    c = m_vBullets;
    return c;
}

当我尝试将c分配给m_vBullets时,我收到以下错误;

2   IntelliSense: identifier "m_vBullets" is undefined

有什么理由?

1 个答案:

答案 0 :(得分:3)

是的,它未定义。

假设m_vBullets是一个类成员,那么我想你要写的是

std::vector<CBullet> YourClassNameHere::getVectorBullet()
{
    std::vector<CBullet> c;
    c = m_vBullets;
    return c;
}

显然将YourClassNameHere替换为您的实际班级名称。

此功能也可以简化,它与

相同
std::vector<CBullet> YourClassNameHere::getVectorBullet()
{
    return m_vBullets;
}

在返回之前没有明显需要复制矢量,因为无论如何返回矢量都会复制它。