私は自分の C++ クラスのコードを少し書いていますが、少し行き詰まっています。
ここに私が取り組んでいる割り当てのビットがあります:
Rover クラス内で、次のメンバー インスタンス変数を指定します。
name (String)
x position on a grid (integer)
y position on a grid (integer)
direction by compass – N, S, E, or W (String)
speed (0 – 5 meters per second, integer)
Rover クラス内で、次のメソッドを指定します。
No-arg constructor – set the rover’s position to (0,0), its speed to 0,
its direction to North,and its name to Default
Constructor that receives parameters to initialize all five
instance variables described above
Setter methods for each instance variable
Getter methods for each instance variable
getRoverData – returns a string that displays values for each instance
variable of the current rover object, placing each value on a separate line,
as follows:
だから今は、ベースケースを機能させたいだけです。これが私のコード全体です:
main.cpp:
#include <iostream>
#include "Rover.h"
using namespace std;
int main() {
Rover rover1;
rover1.setDefaultValues();
cout<<rover1.getRoverData(rover1)<<endl;
return 0;
}
ローバー.cpp:
#include <iostream>
#include "Rover.h"
using namespace std;
//put functions in here
void Rover::setDefaultValues() {
name = "Default";
xcoord = 0;
ycoord = 0;
direction = "N";
speed = 0;
}
void Rover::constructRover() {
}
void Rover::setXcoord(int xcoord) {
this->xcoord = xcoord;
}
void Rover::setYcoord(int ycoord) {
this->ycoord = ycoord;
}
void Rover::setName(string name) {
this->name = name;
}
void Rover::setDirection(string direction) {
this->direction = direction;
}
void Rover::setSpeed(int speed) {
this->speed = speed;
}
int Rover::getXcoord() {
return xcoord;
}
int Rover::getYcoord() {
return ycoord;
}
string Rover::getName() {
return name;
}
string Rover::getDirection() {
return direction;
}
int Rover::getSpeed() {
return speed;
}
string Rover::getRoverData(Rover rover) {
string printStatement = "";
printStatement.append("Data for " << rover.getName());
printStatement.append("\nX: " << Rover::xcoord);
printStatement.append("\nY: " << Rover::ycoord);
printStatement.append("\nDirection: " << Rover::direction);
printStatement.append("\nSpeed: " << Rover::speed);
return printStatement;
}
ローバー.h:
/*
* File: Rover.h
* Author: Matthew
*
* Created on May 14, 2012, 8:10 PM
*/
#ifndef ROVER_H
#define ROVER_H
using namespace std;
class Rover
{
private:
string name;
int xcoord;
int ycoord;
string direction;
int speed;
public:
void setDefaultValues();
void constructRover();
//XCoordinates
void setXcoord(int xcoord);
int getXcoord();
//YCoordinates
void setYcoord(int ycoord);
int getYcoord();
//Name
void setName(string name);
string getName();
//Direction
void setDirection(string direction);
string getDirection();
//Speed
void setSpeed(int speed);
int getSpeed();
//Printout
string getRoverData(Rover rover);
};
#endif /* ROVER_H */
現在発生しているエラーは次のとおりです。
rover.cpp:64: error: no match for 'operator<<' in '"Data for " << Rover::getName()()'
一体それはどういう意味ですか?
この時点で、印刷物に伝えたいことは次のとおりです。
Data for Default
X: 0
Y: 0
Direction: N
Speed: 0
何かご意見は?
投稿したコードが見栄えが悪い場合は申し訳ありません...これは以前に行ったことがありません。
アップデート:
#include <iostream>
#include "Rover.h"
using namespace std;
//put functions in here
void Rover::setDefaultValues() {
name = "Default";
xcoord = 0;
ycoord = 0;
direction = "N";
speed = 0;
}
void Rover::constructRover() {
}
void Rover::setXcoord(int xcoord) {
this->xcoord = xcoord;
}
void Rover::setYcoord(int ycoord) {
this->ycoord = ycoord;
}
void Rover::setName(string name) {
this->name = name;
}
void Rover::setDirection(string direction) {
this->direction = direction;
}
void Rover::setSpeed(int speed) {
this->speed = speed;
}
int Rover::getXcoord() {
return xcoord;
}
int Rover::getYcoord() {
return ycoord;
}
string Rover::getName() {
return name;
}
string Rover::getDirection() {
return direction;
}
int Rover::getSpeed() {
return speed;
}
string Rover::getRoverData(Rover rover) {
string printStatement = "";
printStatement.append("Data for " + rover.getName());
printStatement.append("\nX: " + rover.getXcoord());
printStatement.append("\nY: " + rover.getYcoord());
printStatement.append("\nDirection: " + rover.getDirection());
printStatement.append("\nSpeed: " + rover.getSpeed());
return printStatement;
}
したがって、印刷物は次のようになります。
Data for Default
X:
Y:
Direction: N
Speed:
したがって、基本的にはゼロを出力しません。考え?