为了账号安全,请及时绑定邮箱和手机立即绑定

学习c++的类中遇到的一个问题

class Position {
public: int x; int y;
};

class Robot {
public:
Robot();                           /* default constructor, initialize at (0,0) */
Robot(Position pos);     /* initialize at pos */
void Move(char Dir);     /* Dir could be 'N', 'E', 'S', 'W', for other characters, the robot don’t move */
Position GetPosition();        /* return current position */
private:
Position currentPos;
};

Robot::Robot(Position pos);     /* initialize at pos */这个一直报错请问是什么问题

正在回答

1 回答

不知道你全部的代码是怎样的。提供一个样本仅供参考吧。

#include <iostream>
#include <map>

using namespace std;

class Position {
 public:
         int x;
         int y;

};
class Robot {
public:
         Robot();                           /* default constructor, initialize at (0,0) */
         Robot(Position pos);     /* initialize at pos */
         void Move(char Dir);     /* Dir could be 'N', 'E', 'S', 'W', for other characters, the robot don’t move */
         Position GetPosition();        /* return current position */
private:
         Position currentPos;
};
Robot::Robot(){
 currentPos.x=0;
 currentPos.y=0;
}
Robot::Robot(Position pos){
 currentPos.x=pos.x;
 currentPos.y=pos.y;
}
void Robot::Move(char Dir){
 if(Dir=='N') currentPos.y++;
 else if(Dir=='S') currentPos.y--;
 else if(Dir=='E') currentPos.x++;
 else if(Dir=='W') currentPos.x--;
}
Position Robot::GetPosition(){
 return currentPos;
}
// your code will be here

int main() {
    Position c;
    c.x = 0;
    c.y = 1;
    Robot a;
    cout << a.GetPosition().x << ' ' << a.GetPosition().y << endl;
    Robot b( c );
    cout << b.GetPosition().x << ' ' << b.GetPosition().y << endl;
    b.Move('E');
    cout << b.GetPosition().x << ' ' << b.GetPosition().y << endl;
    b.Move('N');
    cout << b.GetPosition().x << ' ' << b.GetPosition().y << endl;
    b.Move('W');
    cout << b.GetPosition().x << ' ' << b.GetPosition().y << endl;
    b.Move('S');
    cout << b.GetPosition().x << ' ' << b.GetPosition().y << endl;

    b.Move('s');
    cout << b.GetPosition().x << ' ' << b.GetPosition().y << endl;
    return 0;
}

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之封装篇(上)
  • 参与学习       103410    人
  • 解答问题       701    个

封装--面向对象的基石,本教程力求帮助小伙伴们即学即会

进入课程

学习c++的类中遇到的一个问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信