ООП Bubble sort C ++ программа - PullRequest
0 голосов
/ 07 октября 2019

Я получаю эти ошибки Ошибка компилятора C3867 (((('func': список аргументов при отсутствии вызова функции; используйте '& func' для создания указателя на член))))

ничто

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

Я получаю эти ошибки Ошибка компилятора C3867 (((('func': список аргументов при отсутствии вызова; используйте '& func' для создания указателя на член))))

Ответы [ 2 ]

2 голосов
/ 07 октября 2019

Это не так, как вы вызываете функцию f без аргументов:

f;

Вот как вы это делаете:

f();

Кроме того, вы пытаетесьотправьте возвращаемое значение bubbleSort() на cout, но такого значения нет, так как функция имеет void тип возврата.

Фактически, то же самое верно и для вашей функции printArray(): онапечать уже выполняется, и нет результата для отправки на cout.

Попробуйте:

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

Cuzmo::bubbleSort();

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

Другая проблема заключается в том, что вы объявляете и инициализируете локальную переменную array в вашем конструкторе;эта переменная не имеет ничего общего с членом.

То же самое верновашей переменной n. Вы продолжаете пересекать новые локальные переменные, которые shadow переменные-члены.

1 голос
/ 07 октября 2019

Может быть, вы просто забыли скобки после вызова функции? Попробуйте Cuzmo::printArray() и Cuzmo::bubbleSort(). Кроме того, вы можете использовать std :: vector вместо int-массива фиксированного размера (чтобы вы перебирали свои фактические записи, а не 10000 в основном неинициализированных значений) и изучали std :: swap.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...