[英]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.