我正在控制台中进行池游戏模拟。有一个名为Ball的课程。基本上,我希望用户输入桌面上有多少个球池,以及它们的位置和速度。我能看到这个工作的唯一方法是,如果我使用从1(或0)到循环中下面内容的池球数量的循环。这有两个问题,但
问题1:我不知道如何为每个循环创建一个变量
问题2:因为它在循环中,它只在循环中的代码块中创建变量,这意味着我不能在它之外使用它。
cout << "Please tell me where to drop the ball (x y z): ";
int xp,yp,zp;
cin >> xp >> yp >> zp;
if (!cin) exit(EXIT_FAILURE);
vec3 position(xp,yp,zp);
cout << "Please tell me how fast the ball is moving (x y z): ";
int xv,yv,zv;
cin >> xv >> yv >> zv;
vec3 velocity(xv,yv,zv);
cout << "Please tell me how heavy the ball is: ";
int weight;
cin >> weight;
cout << "Please tell me what number the ball is: ";
int number;
cin >> number;
Ball my_ball(number,weight,position,velocity);
做什么?
答案 0 :(得分:0)
使用容器(例如vector
)并将对象存储在该容器中。
阅读STL。它提供了一个有用的容器,算法和其他功能库。
答案 1 :(得分:0)
使用vector
制作Ball
s:
vector<Ball> balls;
for (;;)
{
// …
balls.emplace_back(number, weight, position, velocity);
// or:
balls.push_back(Ball(number, weight, position, velocity));
}
emplace_back
在vector
的末尾构造一个新元素,将提供的参数传递给Ball
构造函数。