这是我想弄清楚的一项任务:
创建一个名为Project3的新项目,并创建一个名为Rover的类
在Rover类中,指定以下成员实例变量:
- 名称(字符串)
- 网格上的x位置(整数)
- y在网格上的位置(整数)
- 指南针方向 - N,S,E或W(字符串)
- 速度(0 - 5米/秒,整数)
在Rover类中,指定以下方法:
- 默认构造函数 - 将流动站的位置设置为(0,0),将其速度设置为0,将其方向设置为 北部。
- 接收参数以初始化上述所有五个实例变量的构造函数
- 每个实例变量的setter方法
- 每个实例变量的getter方法
getRoverData - 返回一个字符串,显示每个实例变量的值 当前流动站对象,将每个值放在一个单独的行上,如下所示:
Rover name: A X-position: 0 Y-position: 0 Direction: E Speed: 1
创建一个类客户端(main),创建一个最多五个流动站的数组并获取初始值 来自用户的所有流动站的值。用户指定每个流动站的值后,显示摘要 如上所示,流动站的价值。
我有大约十亿个错误,我不知道为什么。
using namespace std;
class Rover {
private:
string name;
int x;
int y;
string direction;
int speed;
int position[10][10];
public:
void Rover();
void constructor(string name, int x, int y, string direction, int speed);
void setName(string name);
void setX(int x);
void setY(int y);
void setDirection(string direction);
void setSpeed();
string getName();
int getX();
int getY();
string getDirection();
int getSpeed();
string getRoverData();
};
void Rover::Rover() {
r1.position[0][0];
r1.speed = 0;
r1.direction = "N";
}
string Rover::getRoverData() {
cout << "Rover name: " << r1.getName() << endl;
cout << "X-position: " << r1.getX() << endl;
cout << "Y-position: " << r1.getY() << endl;
cout << "Direction: " << r1.getDirection() << endl;
cout << "Speed: " << r1.getSpeed() << endl;
}
void Rover::constructor(string name1, int x1, int y1, string direction1, int speed1) {
r1.name = name1;
r1.x = x1;
r1.y = y1;
r1.direction = direction1;
r1.speed = speed1;
}
void Rover::setName(string name) {
r1.name = name;
}
void Rover::setX(int x) {
r1.x = x;
}
void Rover::setY(int y) {
r1.y = y;
}
void Rover::setDirection(string direction) {
r1.direction = direction;
}
void Rover::setSpeed(int speed) {
r1.speed = speed;
}
string Rover::getName() {
return name;
}
int Rover::getX() {
return x;
}
int Rover::getY() {
return y;
}
string Rover::getDirection() {
return direction;
}
int Rover::getSpeed() {
return speed;
}
int main(int argc, char** argv) {
string name;
int x;
int y;
string direction;
int speed;
Rover r1;
r1.constructor("Yoda", 3, 3, "N", 3);
cout << "Enter name for Rover: ";
cin >> name;
r1.setName(name);
cout << "Enter its x position: ";
cin >> x;
r1.setX(x);
cout << "Enter its y position: ";
cin >> y;
r1.setY(y);
cout << "Enter direction N,E,S,W: ";
cin >> direction;
r1.setDirection(direction);
cout << "Enter its speed: ";
cin >> speed;
r1.setSpeed(speed);
r1.getRoverData();
return 0;
}
答案 0 :(得分:-1)
您的示例似乎不完整。我猜你错过了在帖子中包含以下几行
#include <string>
#include <iostream>
using namespace std;
首先,构造函数没有返回类型,因此void Rover();
没有意义。删除void
,你就是那里的金色。
其次,您认为r1
到底应该是什么?编译器应该告诉您标识符是未定义的,因为它不是。从您的成员函数中删除r1.
(即任何以Rover::
开头的函数。并且您在那里是金色的。
第三,您认为r1.position[0][0]
会怎么做?这只是一个什么都不做的表达。即使position[0][0]
也不会做任何事情。也许你想以某种方式初始化数组,但是你没有提供足够的信息来确定你想用它完成什么。
第四,成员函数void Rover::setSpeed(int)
尚未在Rover
类中声明。你忘了什么吗?根据您的代码,它应该是
int Rover::getSpeed()
{
return speed;
}
第五,void Rover::setSpeed();
除非实际接受论证,否则没有多大意义。