2013-11-21 16 views
-2

Я объявляю вектор определенного типа;Идентификатор вектора не определен, но это так?

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 

По какой причине?

+0

Мое дикое предположение заключалось в том, что 'm_vBullets' является членом данных, а' getVectorBullet() 'определяется вне класса, то есть является функцией, не являющейся членом. Но нужен больше контекста. – juanchopanza

+0

Где определено m_vBullets? Если это член класса, то getVectorBullet также должен быть членом класса - если он определен вне класса, ему нужна область класса. –

+2

Кроме того, почему вы не делаете 'return m_vBullets;' вместо этого? – Shoe

ответ

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; 
} 

нет никакой очевидной необходимости копировать вектор, прежде чем вернуть его после возвращения вектора будет скопировать его в любом случае.

+0

О, черт побери, какой глупый, глупый маленький человек. Спасибо за то, что Джон. – r0bb077

Смежные вопросы