【发布时间】:2015-12-06 23:27:49
【问题描述】:
我是类新手,我必须在一个类中编写自己的函数和变量,该类在输入时存储流动站信息,并且出于某种原因,每当我编写函数并尝试在 main 中调用它们时它们都不起作用。我已经提供了我的代码,我想知道是否有人可以帮助我解释如何为每个流动站 r1-r5 存储流动站数据。谢谢。
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
//defaultRover();
//Rover();
//Get functions
string getName();
int getXpos();
int getYpos();
string getDirect();
int getSpeed();
void getRoverData();
//Set functions
string setName();
void setXpos();
void setYpos();
void setDirect();
void setSpeed();
};
//Constructor function
/*Rover::defaultRover()
{
xpos=0;
ypos=0;
direction="N";
speed=0;
}
*/
/*
Rover::Rover()
{
cout<<"Please enter the starting X-position: ";
cin>>xpos;
cout<<"Please enter the starting Y-position: ";
cin>>ypos;
cout<<"Please enter the starting direction (N,S,E,W): ";
cin>>direction;
cout<<"Please enter the starting speed (0-5): ";
cin>>speed;
cout<<endl;
}
*/
//Getter functions
string Rover::getName()
{
return name;
}
int Rover::getXpos()
{
return xpos;
}
int Rover::getYpos()
{
return ypos;
}
string Rover::getDirect()
{
return direction;
}
int Rover::getSpeed()
{
return speed;
}
void Rover::getRoverData()
{
cout<<name;
cout<<xpos;
cout<<ypos;
cout<<direction;
cout<<speed;
}
//Setter functions
string Rover::setName()
{
cout<<"Please enter the Rover name ";
cin>>name;
}
void Rover::setXpos()
{
cout<<"Please enter the X-position of the Rover ";
cin>>xpos;
}
void Rover::setYpos()
{
cout<<"Please enter the Y-position of the Rover ";
cin>>ypos;
}
void Rover::setDirect()
{
cout<<"Please enter the direction of the Rover (N,S,E,W) ";
cin>>direction;
}
void Rover::setSpeed()
{
cout<<"Please enter the speed of the Rover (0-5) ";
cin>>speed;
}
int main(int argc, char** argv)
{
Rover r1, r2, r3, r4, r5;
r1.setName();
r1.getName();
return 0;
}
【问题讨论】:
-
这不可能是你的全部代码。你在哪里定义的属性?在课堂范围内?你确定你没有将它们定义为静态的。
-
你在问题中说输入的值没有被打印,但你实际上并没有打印任何东西 - 也许你想在 main 中写
cout << r1.getName() << endl;? -
我建议回去阅读你的 C++ 书,这对每个人都会更有益。
-
我们没有书。我需要的只是被告知如何做 1 个变量,我可以弄清楚其余的。我使用我的 get 函数来打印变量,所以当我调用 r1.setName();在 main 中,我想输入一个变量的名称并使用 r1.getName();打印出来
-
getName返回一些东西,它不打印一些东西。
标签: c++ string function class setter