2013-11-01 2 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; 

당신이 C++ (11)이 동적 런타임이 배열의 크기를 통해 매우 간단에서

+0

우리가 벡터를 작성하지 않았기 때문에, 나는 그것을 사용하는 것이 확실하지 않습니다. 벡터 기능은 정확히 무엇입니까? – user2860942

+0

벡터를 동적 배열로 생각하면, 벡터에 삽입 한 요소를 수용하기 위해 크기가 조절됩니다. – Kunal

+0

인스턴스 수를 알고 있으므로 사전에 공간을 할당 할 수 있습니다. – 4pie0

0

std::vector::push_back()를 사용하여 원하는만큼 사람 개체를 삽입 할 수 있습니다.

Person people[number]; 

모든 벡터 답변도 정확하고 제 생각에는 우수합니다.

관련 문제