gpt4 book ai didi

c++ - 使用 C++ 类计算汽车运动和距离

转载 作者:行者123 更新时间:2023-11-28 01:49:54 28 4
gpt4 key购买 nike

但是这个程序可以编译,我需要让这个函数在 x 和 y 坐标上移动,然后输出移动的总距离。 xCord 将其左右移动,而 yCord 将其上下移动。我想我需要更新我的 int Taxicab::getDistanceTraveled()、void Taxicab::moveX(int getX) 和 void Taxicab::moveX(int getX)。但是对于我的生活来说,我不知道该怎么做才能让它正确更新。当我编译并运行时,cab1 的行驶距离为 132617596,cab2 的 Y 坐标为 0。谢谢您的帮助!

#ifndef TAXI_CPP
#define TAXI_CPP

class Taxicab
{
private:
int xCord;
int yCord;
int totalDist;
public:
Taxicab(); //default constructor
Taxicab(int, int); //overload constructor
int getX(); //returns X coordinate
int getY(); //returns Y coordinate
int getDistanceTraveled(); //returns distance calculation
void moveX(int); //moves X left or right
void moveY(int); //moves Y left or right
};
#endif // !TAXI_CPP




#include "Taxi.h"
#include <iostream>
#include <math.h>
#include <cstdlib>

using std::cout;
using std::cin;
using std::endl;
using std::abs;

Taxicab::Taxicab() //default constructor
{

}

Taxicab::Taxicab(int xCord, int yCord) //overload constructor
{
xCord = 0; //initialize to 0
yCord = 0; //initialize to 0
totalDist = 0; //initialize to 0
}

int Taxicab::getX()
{
return xCord; //return x coordinate
}

int Taxicab::getY()
{
return yCord; //return y coordinate
}

void Taxicab::moveX(int getX)
{
int moveX = 0;
moveX = moveX + getX;
}

void Taxicab::moveY(int getY)
{
int moveY = 0;
moveY = moveY + getY;
}

int Taxicab::getDistanceTraveled()
{
return abs(xCord) + abs(yCord);
}


#include <iostream>
#include "Taxi.h"
#include <math.h>

using std::cout;
using std::cin;
using std::endl;

int main()
{
Taxicab cab1;
Taxicab cab2(5, -8);
cab1.moveX(3);
cab1.moveY(-4);
cab1.moveX(-1);
cout << cab1.getDistanceTraveled() << endl;
cab2.moveY(7);
cout << cab2.getY() << endl;
}

最佳答案

你的构造函数没有意义。在默认构造函数中,您必须将成员变量初始化为某些东西,否则它们的值是未定义的并且可以设置为某个随机值。也许试试这些:

Taxicab::Taxicab() //default constructor
{
xCord = 0; //initialize to 0
yCord = 0; //initialize to 0
totalDist = 0; //initialize to 0
}

Taxicab::Taxicab(int xCord, int yCord) //overload constructor
{
this->xCord = xCord;
this->yCord = yCord;
totalDist = 0; //initialize to 0
}

移动出租车的方法也没有多大意义。也许这样的事情会更好:

void Taxicab::moveX(int offsetX)
{
totalDist += abs(offsetX);
xCoord += offsetX;
}

void Taxicab::moveY(int offsetY)
{
totalDist += abs(offsetY);
yCoord += offsetY;
}

int Taxicab::getDistanceTraveled()
{
return totalDist;
}

关于c++ - 使用 C++ 类计算汽车运动和距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43422437/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com