Arrays 数组类致命错误c++;
当试图定义一个包含5个元素的数组(默认为零)的类时,我收到以下错误 头文件Arrays 数组类致命错误c++;,arrays,class,Arrays,Class,当试图定义一个包含5个元素的数组(默认为零)的类时,我收到以下错误 头文件 class Array { public: Array (int =5); //Initialize the array with 0 values private: int size; // size of created array int* arr; }; 来源 #include<iostream> #include"Array.h" using namespace std; Array
class Array
{
public:
Array (int =5); //Initialize the array with 0 values
private:
int size; // size of created array
int* arr;
};
来源
#include<iostream>
#include"Array.h"
using namespace std;
Array::Array (int i)
{
arr = new int[5];
for(int j = 0; j<size; j++)
*(arr + i) = 0;
}
#包括
#包括“Array.h”
使用名称空间std;
数组::数组(int i)
{
arr=新整数[5];
对于(int j=0;j在构造函数中使用它之前,您不需要初始化Array::size
。初始化Array::size
。首先,您没有提到错误是什么。此时它可以编译吗
其次,您似乎没有在那里设置构造函数的大小,因此那里不会设置任何内容(正如@Oswald所说)
第三,应该使用数组表示法。例如:
arr[i]='\0'
第四,在循环中更改变量。初始化J,然后将其更改为I。确保在整个过程中使用相同的变量。代码中有几个问题
Array::Array (int i): size(i) // <-- initialise size with i
{
arr = new int[5]; //Should be: new int[size];
^ 5?? How about using size that we receive as parameter??
for(int j = 0; j<size; j++)
*(arr + i) = 0;
^ Here is the problem. Use *(arr + j)!
}
Array::Array(int i):size(i)//您有什么错误?您好!非常感谢您的回复,但我发现了我的错误。我知道一旦我发现它,它将是一个愚蠢的东西,事实就是。我的驱动程序是一个.h文件,而不是.cpp。很抱歉占用您的时间。
Array::Array (int i): size(i) // <-- initialise size with i
{
arr = new int[5]; //Should be: new int[size];
^ 5?? How about using size that we receive as parameter??
for(int j = 0; j<size; j++)
*(arr + i) = 0;
^ Here is the problem. Use *(arr + j)!
}