我寫C++整型數組類自己和提取子陣列功能,但在試圖編譯我的代碼,我收到此錯誤:編寫C++「陣列」類自己
「多個標記在該行 - 沒有回報,在函數返回非空 - 與 '陣列陣列:: subArr(INT,INT)'」
(不好意思忘了,包括這個錯誤)
- ‘int* Array::subArr(int, int)’ cannot be overloaded
但爲什麼不能它是超載?
Array類的私有數據成員是:
兩個導致錯誤的公共職能爲:
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;
}
}
和
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";
}
我可以給全班代碼是否需要。
那麼,有什麼不清楚的錯誤信息?在「if」塊之外沒有「返回」。 –
錯誤信息其實很清楚,你的函數應該返回一個'int *',但是在某些情況下它不會。 – user463035818
你讀過編譯器說的什麼了嗎?它說你的函數不會返回一個值。很明顯,有代碼修改('else',因爲你的'if'沒有完成)函數沒有返回。 –