I am writing c++ integer array class myself and a function for extracting sub-arrays but I am getting this error while trying to compile my code:
"Multiple markers at this line - No return, in function returning non-void - with ‘Array Array::subArr(int, int)’"
(sorry forgot to include this error)
- ‘int* Array::subArr(int, int)’ cannot be overloaded
But why cant it be overloaded?
The private data members of class Array are:
private:
int *arr;
int *subArray;
int *subArr1;
int len;
The two public functions causing the error are:
int * subArr(int pos, int siz)
{
if (pos+siz < len)
{
subArr1 = new int[siz];
for (int i=0; i<siz; i++)
{
subArr1[i] = arr[pos];
pos++;
}
return subArr1;
}
}
and
Array subArr(int pos, int siz)
{
if (arr != NULL && (siz + pos) < len)
{
Array sub;
sub.len = siz;
sub.subArray = new int [siz];
for (int i=0; i<siz; i++)
{
sub.subArray[i] = arr[pos];
pos++;
}
return sub;
}
cout<<"Error. Enter a valid index and/or position\n";
}
I can send the whole class code if it is required.