C++;错误:与';不匹配;操作员<<';在'&引用;“的数据”<&书信电报;罗孚:getName()'; 我正在为我的C++类编写一些代码,我有点被卡住了。
以下是我正在做的作业:C++;错误:与';不匹配;操作员<<';在'&引用;“的数据”<&书信电报;罗孚:getName()'; 我正在为我的C++类编写一些代码,我有点被卡住了。,c++,class,C++,Class,以下是我正在做的作业: 在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
在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;
}
我当前遇到的错误是:
rover.cpp:64: error: no match for 'operator<<' in '"Data for " << Rover::getName()()'
有什么想法吗
对不起,如果代码看起来很糟糕,因为我张贴它…没有这样做之前
更新:
所以,它基本上不会打印出零。想法?代码>是的!它编译!非常感谢你!不过现在它做了一些奇怪的事情,看下一篇帖子。如果你想看的话,我用更多的理论更新了我的答案。哦,很好。这非常有帮助:)我说不出我是Java人,对吗?;)虽然我根本不喜欢java,但还是非常喜欢C++!是的,当我发现Java没有运算符重载时,我很惊讶。它可能被严重滥用,但对于大多数用途来说,它是非常有用的。想象一下,当我上了一个
BigInt
课程,却不能使用a+b
。对不起,为了适应论坛规则,我将新问题放在了主问题的更新中:)如果您有任何见解,我将不胜感激。
/*
* 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:
std::cout << "Some string" << someStdString;
(std::cout << "Some string") << someStdString;
operator<< (operator<< (std::cout, "Some string"), someStdString);
int i = 5 + 2 + 3;
printStatement.append("Data for " + rover.getName());
//or
printStatement.append("Data for ");
printStatement.append(rover.getName());
//or
printStatement += "Data for " + rover.getName();
#include <sstream>
int main()
{
std::stringstream ss;
ss << 5; //the int to be converted
std::string s = ss.str(); //get the string
cout << s + " is the number"; //print with an added string
}