[英]Printing out an array of objects
I am currently having trouble figuring out the syntax to print out all 5 of my rovers in an Array in main, I can currently get all the Rover data and have it store to each Rover but I can not figure out how to make an array of them. 我目前在弄清楚在主数组中打印出所有5个流动站的语法时遇到麻烦,我目前可以获取所有流动站数据并将其存储到每个流动站,但我不知道如何制作一个数组他们。 If anyone could help, that would be appreciated greatly.
如果有人可以提供帮助,将不胜感激。
class Rover{
private:
string name;
int xpos;
int ypos;
string direction; //Use Cardinal Directions (N,S,E,W)
int speed; //(0-5 m/sec)
public:
//Constructors
Rover();
Rover(string,int,int,string,int);
//Get functions
string getName()const;
int getXpos()const;
int getYpos()const;
string getDirect()const;
int getSpeed()const;
void getRoverData();
//Set functions
void setName(string);
void setXpos(int);
void setYpos(int);
void setDirect(string);
void setSpeed(int);
};
//Constructor function
Rover::Rover()
{
xpos=0;
ypos=0;
direction="N";
speed=0;
}
Rover::Rover(string nme,int xp, int yp, string dir, int sp) :
name(nme), xpos(xp), ypos(yp), direction(dir), speed(sp)
{
}
Rover readRover()
{
string nme;
int xp;
int yp;
string dir;
int sp;
cout<< "Please enter the Name of the Rover: ";
cin>> nme;
cout << "Please enter the starting X-position: ";
cin >> xp;
cout << "Please enter the starting Y-position: ";
cin >> yp;
cout << "Please enter the starting direction (N,S,E,W): ";
cin >> dir;
cout << "Please enter the starting speed (0-5): ";
cin >> sp;
// Construct an object with the user input data and return it.
return Rover(nme, xp, yp, dir, sp);
}
//Getter functions
string Rover::getName()const
{
return name;
}
int Rover::getXpos()const
{
return xpos;
}
int Rover::getYpos()const
{
return ypos;
}
string Rover::getDirect()const
{
return direction;
}
int Rover::getSpeed()const
{
return speed;
}
void Rover::getRoverData()
{
cout<<name;
cout<<xpos;
cout<<ypos;
cout<<direction;
cout<<speed;
}
//Setter functions
void Rover::setName(string nme)
{
cin>>nme;
name=nme;
}
void Rover::setXpos(int x)
{
cin>>x;
xpos=x;
}
void Rover::setYpos(int y)
{
cin>>y;
ypos=y;
}
void Rover::setDirect(string direct)
{
cin>>direct;
direction=direct;
}
void Rover::setSpeed(int spd)
{
cin>> spd;
speed=spd;
}
int main(int argc, char** argv) {
int MAX=5;
Rover Rovers[MAX];
cout<<"Please enter Rover 1's information"<<endl;
Rover r1=readRover();
cout<<endl;
cout<<"Please enter Rover 2's information"<<endl;
Rover r2=readRover();
cout<<endl;
cout<<"Please enter Rover 3's information"<<endl;
Rover r3=readRover();
cout<<endl;
cout<<"Please enter Rover 4's information"<<endl;
Rover r4=readRover();
cout<<endl;
cout<<"Please enter Rover 5's information"<<endl;
Rover r5=readRover();
cout<<endl;
r1.getRoverData();
You can try something like : 您可以尝试类似:
int main() {
int max = 5;
Rover rovers[max];
for (int i = 0; i < max; ++i) {
std::cout << "Please enter Rover " << i + 1 << "'s information" << endl;
rovers[i] = readRover();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.