Hi Dave,
The error is caused because of square bracket[] (I just wrote code in Java, so I used wrong () ). After changing to [], the program runs correctly.
Thanks for everything, Dave.
#include <iostream>
#define LENGTH 5
#define ERROR -1
using std::cout;
using std::cin;
using std::endl;
class Array
{
public:
Array()
{
array = new int[LENGTH];
}
~Array()
{
delete[] array;
}
void setElement(int index, int value)
{
if ( index >= 0 && index < LENGTH )
array[index] = value;
else
cout << "INVALID INDEX" << endl;
}
int getElement(int index) const
{
if ( index >= 0 && index < LENGTH )
return array[index];
else
{
cout << "INVALID INDEX" << endl;
return ERROR;
}
}
private:
int* array;
};
Array* getArray();
void printArray(Array* array);
int main()
{
Array* array = getArray();
cout << "array in main" << endl;
printArray(array);
Array* array2 = getArray();
cout << "array in main" << endl;
printArray(array2);
cout << "array in main" << endl;
printArray(array);
delete array2;
delete array;
return 0;
}
Array* getArray()
{
int value = 0;
Array* array = new Array();
for (int i = 0; i < LENGTH; i++)
{
cout << "Enter an integer: ";
cin >> value;
array->setElement(i, value);
}
cout << "array in getArray()" << endl;
printArray(array);
return array;
}
void printArray(Array* array)
{
for (int i = 0; i < LENGTH; i++)
cout << array->getElement(i) << " ";
cout << endl;
cout << endl;
}
/*
Output:
Enter an integer: 1
Enter an integer: 2
Enter an integer: 3
Enter an integer: 4
Enter an integer: 5
array in getArray()
1 2 3 4 5
array in main
1 2 3 4 5
Enter an integer: 10
Enter an integer: 20
Enter an integer: 30
Enter an integer: 40
Enter an integer: 50
array in getArray()
10 20 30 40 50
array in main
10 20 30 40 50
array in main
1 2 3 4 5
Press any key to continue
*/