簡體   English   中英

OOP 冒泡排序 C++ 程序

[英]OOP Bubble sort C++ program

我收到這些錯誤 Compiler Error C3867 (((( 'func': function call missing argument list; use '&func' to create a pointer to member ))))

沒有什么

#include <iostream>
using namespace std;

class Cuzmo
{
private:
    int array[1000];
    int n;

public:
    Cuzmo ()
    {
        int array[] = { 95, 45, 48, 98, 485, 65, 54, 478, 1, 2325 };
        int n = sizeof (array) / sizeof (array[0]);
    }

    void printArray (int* array, int n)
    {
        for (int i = 0; i < n; ++i)
            cout << array[i] << endl;
    }

void bubbleSort (int* array, int n)
{
    bool swapped = true;
    int j = 0;
    int temp;

    while (swapped)
    {
        swapped = false;
        j++;
        for (int i = 0; i < n - j; ++i)
        {
            if (array[i] > array[i + 1])
            {
                temp = array[i];
                array[i] = array[i + 1];
                array[i + 1] = temp;
                swapped = true;
            }
        }
    }
}
};

int main ()
{
    Cuzmo sort;

cout << "Before Bubble Sort :" << Cuzmo::printArray << endl;

cout << Cuzmo::bubbleSort << endl;

cout << "After Bubble Sort :" << Cuzmo::printArray << endl;

return (0);
}

我收到這些錯誤 Compiler Error C3867 (((( 'func': function call missing argument list; use '&func' to create a pointer to member ))))

這不是您在沒有 arguments 的情況下調用 function f的方式:

f;

這就是你的做法:

f();

此外,您正在嘗試將bubbleSort()的返回值發送到cout ,但沒有這樣的值,因為 function 具有void返回類型。

實際上,您的 printArray printArray() function 也是如此:它已經進行了打印,並且沒有結果值要發送到cout

嘗試:

cout << "Before Bubble Sort :";
Cuzmo::printArray();
cout << endl;

Cuzmo::bubbleSort();

cout << "After Bubble Sort :";
Cuzmo::printArray();
cout << endl;

另一個問題是您在構造函數中聲明和初始化了一個局部變量array 此變量與成員無關。

您的變量n也是如此。 您不斷地重新聲明新的局部變量,這些變量會影響成員變量。

也許您只是在 function 調用后忘記了括號? 試試Cuzmo::printArray()Cuzmo::bubbleSort() 此外,您可能希望使用 std::vector 而不是固定大小的 int 數組(以便循環遍歷實際條目而不是 10000 個大部分未初始化的值)並查看 std::swap。

暫無
暫無

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

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