2014-03-03 84 views
0
#include <iostream> 


using namespace std; 

class amin 
{ 
private: 
    const int length = 10; 
    int newArray[length]; 
    int i; 

public: 
    int deleteEvenNumber(int getArray[length]) 
    { 

     for (i = 0 ; i < length ; i++) 
     { 
      if (getArray[i] % 2 == 0) 
       newArray[i] = getArray[i]; 
       i++; 

     }; 

     return newArray[length]; 
    }; 
}; 

主:錯誤C2664:無法從 '詮釋' 轉換參數1到 'INT []'

int main() 
{ 
    amin manipulateArrays; 

    int input , i = 0; 
    const int length = 10; 
    int mainArray[length]; 


    cout<<"Please enter ten numbers :"<<endl; 

    for (i = 0 ; i < length ; i++) 
    { 
     cin>>input; 
     mainArray[i] = input; 
     i++; 
    }; 

    manipulateArrays.deleteEvenNumber(mainArray[length]); 
}; 

我得到了這兩個錯誤:

  1. 錯誤C2664:「阿明:: deleteEvenNumber':無法將參數1從'int'轉換爲'int []'

  2. 智能感知:類型爲「int」的參數與參數不兼容類型「int *」

請幫助並向我解釋我的錯誤。

請給我介紹一個關於這個問題或這個標題的好教程。

+0

我會用'的std :: VECTOR'而不是陣列。 – Nick

回答

5

你的功能deleteEvenNumber()需要int [](即int陣列),但是你通過它的int它。

manipulateArrays.deleteEvenNumber(mainArray[length]); 
            ^^^^^^^^^^^^^^^^^ 
             | 
          this is an 'int', not an 'int []' 

要還通過length的功能,您可能希望你的函數改爲

int deleteEvenNumber(int getArray[], int length) 

然後調用它像:

manipulateArrays.deleteEvenNumber(mainArray, length); 

或者,您可以使用取而代之的是,然後你可以通過mainArray.size()輕鬆獲得它的長度。

+0

「長度」呢?它不會編譯... – Nick

+1

@Nick固定。謝謝。 – herohuyongtao

+1

+1。很高興看到提及'std :: vector'! – Nick

1

你的函數需要一個int[](陣列)作爲參數

int deleteEvenNumber(int getArray[length]) 

但你傳遞一個int

manipulateArrays.deleteEvenNumber(mainArray[length]); 
相關問題