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.
 
     
    