gpt4 book ai didi

c++ - 通过构造函数传递对象?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:23:19 25 4
gpt4 key购买 nike

这是一道作业题。我试图通过构造函数传递一个对象来创建一个具有双倍值的新对象。该对象是一个具有上下索引和大小的 int 数组。我不确定我是否只是将私有(private)变量的值更改为 * 2 或者我是否完全遗漏了一些东西。

这是我的类(class)标题:

const int SIZE = 100;

class intArray{
private:
int iArray[SIZE];
int arrLower, arrUpper;
int size;

public:
intArray();
intArray(int size);
intArray(int lower, int upper);
intArray(intArray& input);
int high();
int low();
int& operator[] (int size) { return iArray[size]; }

};

到目前为止我对构造函数的所有了解:

intArray::intArray(intArray& input){

input.iArray[size] *= 2;
input.size *= 2;
input.arrUpper *= 2;
input.arrLower *= 2;

}

我什至不确定这是否正确。

最佳答案

intArray::intArray(intArray& input){

input.iArray[size] *= 2;
input.size *= 2;
input.arrUpper *= 2;
input.arrLower *= 2;

}

这是不正确的。

因为您在所有内容前都加上了input.,所以您修改的不是您想要的原始内容。只需复制所有旧值,但乘以二

intArray::intArray(intArray& input){

for(int i = 0; i < size; i++) {
iArray[i] = input.iArray[i] * 2; //set this array to 2x the input array
}
size = input.size * 2;
arrUpper = input.arrUpper * 2;
arrLower = input.arrLower * 2;

}

虽然这会起作用,但数组大小相同,但 size 乘以二,这是错误的。我不确定你的类(class)到底应该做什么,但我可以告诉你这真的没有意义。什么是 arrUpperarrLower?如果您回答,我可以为您提供更多帮助。

这是一个更有意义的,但我仍然不知道你的一些变量是什么意思。

intArray::intArray(intArray& input){
size = input.size; //keep this the same
for(int i = 0; i < size; i++) {
iArray[i] = input.iArray[i] * 2; //set this array to 2x the input array
}
arrUpper = input.arrUpper; //what is this even?
arrLower = input.arrLower;

}

关于c++ - 通过构造函数传递对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24875834/

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