2016-11-09 5 views
-2
class Bird{ 

public: 
    void init(); 
    Bird();//constructor 
    void foo();//its defined somewhere 
}; 


int _tmain(int argc, _TCHAR* argv[]) 
{ 
    std::vector <Bird> B[51]; 

    for (int i = 0; i < 51; i++) 
     B[i].foo(); 
} 

кажется, что вектор представляет собой безопасный и современный способ безопасного создания объекта 51.Как получить доступ к методам массива векторных классов в C++

Предположим, что я создаю массив объектов из класса Bird. и хотите использовать каждый метод объектов. (Я не могу использовать статический массив объектов, потому что я должен поменять местами элементы массива позже.)



(и я не использовал C++ с 2000. Теперь я должен)

+5

У вас есть массив векторов. Похоже, вам нужен один вектор. – juanchopanza

+0

Вектор кажется современным способом использования динамического массива в C++. и я хочу, чтобы он использовался. так что у вас есть решение, а не вопрос? –

+5

Используя '[]', вы создали массив из 51 вектора. Чтобы иметь вектор с 51 элементом, вы используете 'std :: vector B (51);' –

ответ

1

в ответ г-н Бу в точку.

class Bird{ 

public: 
    void init(); 
    Bird();//constructor 
    void foo();//its defined somewhere 
}; 


int _tmain(int argc, _TCHAR* argv[]) 
{ 
    std::vector <Bird> B(51); // fixed line 

    for (int i = 0; i < 51; i++) 
     B[i].foo(); 
}