Выполнение вызова функции вне цикла while.
Я довольно новичок в C++ и создаю программу, которая должна имитировать колонию кроликов. Программа сможет автоматически добавлять кроликов, давать им имена, возраст, цвет и т. д. Я ищу совет о том, как я мог бы изменить свой код так, чтобы функция печати работала вне цикла while.
Что я уже пробовал:
#include <iostream> #include <ctime> #include <vector> #include <cstdlib> using namespace std; const int POSSIBLE_NAMES = 18; const int POSSIBLE_COLORS = 4; static std::string possibleNames[] ={ "Jen", "Alex", "Janice", "Tom", "Bob", "Cassie", "Louis", "Frank", "Bugs", "Daffy", "Mickey", "Minnie", "Pluto", "Venus", "Topanga", "Corey", "Francis", "London", }; static std::string possibleColors[] ={ "White", "Brown", "Black", "Spotted" }; struct Bunny { public: string name; int age; string color; char sex; Bunny(){ setSex(); setColor(); setAge(0); setName(); } int randomGeneration(int x){ return rand() % x; } void setSex() { int randomNumber = randomGeneration(2); ( randomNumber == 1 ) ? sex = 'm' : sex = 'f'; } char getSex() { return sex; } void setColor() { int randomNumber = randomGeneration(POSSIBLE_COLORS); color = possibleColors[randomNumber]; } string getColor() { return color; } void setAge(int age) { this->age = age; } int getAge() { return age; } void setName() { int i = randomGeneration(POSSIBLE_NAMES); name = possibleNames[i]; } string getName() { return name; } void printBunny() { cout << "Name: " << getName() << endl; cout << "Sex: " << getSex() << endl; cout << "Color: " << getColor() << endl; cout << "Age: " << getAge() << endl; } }; int main() { int i; vector< Bunny > colony; while(i > 6) { colony.push_back( Bunny() ); colony[i].printBunny();//<-- I want this to be able to happen outside the while loop cout << endl; i++; } return 0; }