【发布时间】:2020-02-18 00:34:12
【问题描述】:
在我在学校的一堂课中,我的部分作业包括创建一个构造函数,将随机值分配到二维数组中。虽然我已经能够创建数组,让构造函数将随机值分配到所述数组中,但我似乎无法创建具有不同 2D 数组的多个对象。我制作的任何对象似乎都具有先前分配给第一个对象的相同值。我在 C++ 方面相当新,所以我认为答案几乎没有飞过我的头。 TIA
#include <ctime>
#include <cstdlib>
#include <iostream>
using namespace std;
const int sizeOfArray = 3;
int myArray;//a
class Matrix
{
public:
int myArray[sizeOfArray][sizeOfArray];//a
Matrix ()//b
{
srand(time(NULL));
for(int i = 0; i < sizeOfArray; i++){
for(int j = 0; j < sizeOfArray; j++){
myArray[i][j] = rand() % 10;
}
}
}
void printMyArray();
};
void Matrix::printMyArray()//c
{
cout<<"The Matrix is as follows: \n"<<endl;
cout<<myArray[0][0]<<"\t"<<myArray[0][1]<<"\t"<<myArray[0][2]<<"\n"<<endl;
cout<<myArray[1][0]<<"\t"<<myArray[1][1]<<"\t"<<myArray[1][2]<<"\n"<<endl;
cout<<myArray[2][0]<<"\t"<<myArray[2][1]<<"\t"<<myArray[2][2]<<"\n"<<endl;
}
int main()
{
Matrix matrix;
matrix.printMyArray();
Matrix natrix;
natrix.printMyArray();
return 0;
}
我希望输出吐出两个不同的数组,但是,同一个数组重复两次,输出为:
矩阵如下:
4 0 9
6 0 4
6 3 0
矩阵如下:
4 0 9
6 0 4
6 3 0
【问题讨论】:
-
不相关,但为什么全局范围内有
int myArray;? -
如今,C++ 程序员可以使用许多随机数生成选项,而不是
rand。考虑改用std::uniform_int_distribution。如果你想要一些笑声和an explanation of whyrandisn't all that good... -
没有理由我只是不知道如何编码哈哈。我相信几天前当我开始这部分作业时,我把它放在那里是为了测试一些东西。不过感谢您的收获!
标签: c++ constructor