gpt4 book ai didi

c++ - 数组没有产生正确的输出

转载 作者:行者123 更新时间:2023-12-02 10:33:31 25 4
gpt4 key购买 nike

我在将变量分配给不同函数的数组时遇到问题。我有两个产生不同数字的函数。然后我想将这些数字分配给同一类中的私有(private)数组。当我这样做时,数组返回大的负数。

// Array.h
class Array {
private:
int W = A;
int Q = B;
int sum[2] = {W, Q};
public:
int A;
int B;
int num1();
int num2();
int add();
};


// Array.cpp
#include<iostream>
using namespace std;
#include "Array.h"

int Array::num1()
{
int x = 3;
int y = 4;
A = x + y;
cout << A << endl;
return A;
}

int Array::num2()
{
int x = 2;
int y = 5;
B = x + y;
cout << B << endl;
return B;
}

int Array::add()
{
for(int i = 0; i < 2; i++)
{
cout << sum[i] << endl;
}
return 0;
}


// main.cpp
#include <iostream>
#include "Array.h"

int main() {
Array sumTotal;
sumTotal.num1();
sumTotal.num2();
sumTotal.add();
return 0;
}

最佳答案

问题在这里:

int W = A;
int Q = B;
int sum[2] = { W, Q };

你只是在处理从 A 和 B 到 W 和 Q 的值(value)。
稍后当您设置 A 和 B 时,这些更改不会反射(reflect)到 W 或 Q。
从而使 W 和 Q 未初始化。

注意:考虑在数组、指针和引用领域研究更多关于 C++ 主题。

这是修改后的代码,可以正常工作:
#include <iostream>


using namespace std;

class Array {
private:
int sum[2];
public:
int num1();
int num2();
int add();
};


int Array::num1()
{
int x = 3;
int y = 4;
sum[0] = x + y;
cout << sum[0] << endl;
return sum[0];
}

int Array::num2()
{
int x = 2;
int y = 5;
sum[1] = x + y;
cout << sum[1] << endl;
return sum[1];
}

int Array::add()
{
for (int i = 0; i < 2; i++)
{
cout << sum[i] << endl;
}
return 0;
}


int main(int argc, char** argv)
{
Array sumTotal;
sumTotal.num1();
sumTotal.num2();
sumTotal.add();

return 0;
}

关于c++ - 数组没有产生正确的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61345588/

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