gpt4 book ai didi

c++ - 为什么我的函数不能传递正确的值?

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

我有一个 zybooks 部分有一个挑战让我很难受。以下我唯一可以更改的代码是 createlicenseNum 函数。

 #include <iostream>
using namespace std;

class DogLicense{
public:
void SetYear(int yearRegistered);
void CreateLicenseNum(int customID);
int GetLicenseNum() const;
private:
int licenseYear;
int licenseNum;
};

void DogLicense::SetYear(int yearRegistered) {
licenseYear = yearRegistered;
}

// FIXME: Write CreateLicenseNum()

void DogLicense::CreateLicenseNum(int customID) {
int licenseNum;
int licenseYear;
licenseNum = 0;
licenseNum = (100000 * customID) + licenseYear;

}


int DogLicense::GetLicenseNum() const {
return licenseNum;
}

int main() {
DogLicense dog1;

dog1.SetYear(2014);
dog1.CreateLicenseNum(777);
cout << "Dog license: " << dog1.GetLicenseNum() << endl;

return 0;
}

问题是运行 GetLicenseNum() 时的输出是 0。我尝试在 createlicenseNum 函数中添加一个 cout 以查看它运行时 licenseNum 等于什么,我得到一个非零数字,但它不是正确的。我知道问题出在变量的传递上,但我不知道如何解决它。

最佳答案

改成这个

void DogLicense::CreateLicenseNum(int customID) {
licenseNum = (100000 * customID) + licenseYear;

}

您正在现有的 CreateLicenseNum 中创建隐藏变量。这意味着 licenseNumlicenseYear 在本地作用域为 CreateLicenseNum。本地 licenseNumlicenseYear 没有初始化为特定值,所以 licenseYear 可以是任何值。

关于c++ - 为什么我的函数不能传递正确的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53684606/

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