2013-11-01 4 views
0

Мне было интересно, можно ли создавать несколько экземпляров класса исключительно из пользовательского ввода. Например:Создание экземпляров нескольких классов из пользовательского ввода

Class Person{ 
     int a; 
     int b; 

} 

Person 1; Person 2; etc... 
int number; 

Тогда

cout << "Ask user to input a number for amount of class instances"; 
cin >> number; 

Есть ли способ, что, когда вы попросите пользователя для этого номера, вы получите позволяет сказать, 5 класс экземпляров человека? Или это не способно в этой форме и, возможно, следует принять другой подход?

ответ

1
cin >> number; 
std::vector<Person> instances(number); // will use Person() default constructor 
             // to create number of instances   
1

Используйте std::vector

std::vector<Person> persons; 

Вы можете вставить столько объектов Person, как вы хотите использовать std::vector::push_back()

+0

как мы еще не сделали вектор, я не уверен в его использовании. Что именно делает векторная функциональность? – user2860942

+0

Подумайте о векторе как динамическом массиве, который изменит размер, чтобы разместить элементы, которые вы вставляете в него. – Kunal

+0

он может выделить пространство заранее, так как количество экземпляров известно – 4pie0

0

В C++ 11 это очень просто с помощью динамического выполнения размера массивов.

Person people[number]; 

Все ответы на вопросы также верны и, по моему мнению, выше.

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