簡體   English   中英

錯誤C2664:無法將參數1從'int'轉換為'int []'

[英]error C2664: cannot convert parameter 1 from 'int' to 'int []'

#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];
    };
};

主要:

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:“ amin :: deleteEvenNumber”:無法將參數1從“ int”轉換為“ int []”

  2. IntelliSense:“ int”類型的參數與“ int *”類型的參數不兼容

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

並請為我介紹有關此問題或標題的很好的教程。

您的函數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);

或者,可以改用vector<int> mainArray ,然后可以通過mainArray.size()輕松獲取其長度。

您的函數需要一個int[] (數組)作為參數

int deleteEvenNumber(int getArray[length])

但是你要傳遞一個int

manipulateArrays.deleteEvenNumber(mainArray[length]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM