gpt4 book ai didi

c++ - 值(value)?通过引用传递时是错误的

转载 作者:行者123 更新时间:2023-11-28 05:42:42 25 4
gpt4 key购买 nike

我对 C++ 不是很精通,所以当我编写程序时,我首先用 Java 编写它,这样我可以更好地理解并帮助将其转换为 C++这是代码:

里程表.h

    class Odometer
{
public:
Odometer();
int traveled(int mils);
void report();
private:
int miles;
};

里程表类:

    #include "Odometer.h"
#include <iostream>
using namespace std;

Odometer::Odometer(){ //just added
miles = 0; //initializing
}
int Odometer::traveled(int mils){
miles = miles + mils;
return miles;
}
void Odometer::report(){
int limit = 999999;
if (miles < limit){
cout << miles;
}
else{
miles = 0;
}
}

电量计.h

    class FuelGauge{
public:
FuelGauge();
int add(int gallons);
void report();
void decrement(int gallons);
private:
int gallons;
};

电量计类

#include "FuelGauge.h"
#include <iostream>
using namespace std;

FuelGauge::FuelGauge(){ //just added
gallons = 0;
}
int FuelGauge::add(int gals){
gallons = gallons + gals;
return gallons;
}
void FuelGauge::report(){
cout << gallons << endl;
}
void FuelGauge::decrement(int galls){
gallons = gallons - galls;
}

CarInfoMain 类

#include "FuelGauge.h"
#include "Odometer.h"
#include <iomanip>
#include <iostream>
using namespace std;

int main(){
FuelGauge g;
Odometer m;
int gallons;
int miles;

cout << "How many gallons do you want to start with in the car? " << endl;
cin >> gallons;
g.add(gallons);
cout << "How far did you travel? " << endl;
cin >> miles;
g.decrement(miles / 24);
cout << "Current Gallons now: " << endl;
g.report(); //<--- this is where it doesn't return it right
/*cout << "Odometer: " << endl;
m.report();*/
}

样本运行:

Gallons started with? 14

Miles traveled? 150

Current gallons now: 1470880840 //usually a large number of this size, sometimes //with a minus in the front, e.g -574807128

我不知道为什么它不起作用。谢谢

最佳答案

在 C++ 中,局部变量默认具有垃圾值/(在为您的变量分配之前内存单元中的内容)。

所以当你计算 miles = miles + mils您正在为一些垃圾值(value)增加里程只需将英里和加仑初始化为 0 即可解决此问题。

int 英里 = 0;int 加仑 = 0;

关于c++ - 值(value)?通过引用传递时是错误的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36818439/

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