出于某种原因,以下代码在 DevC++ 中给出了编译器错误: [错误] 无法声明成员函数 'static double* Sort::bubbleSort(double*, int)' 具有静态链接 [-fpermissive]
冒泡排序.cpp:
#include <iostream>
#include "Sort.h"
int main(int argc, char** argv) {
double list[] = {4.0, 4.5, 3.2, 10.3, 2.1, 1.6, 8.3, 3.4, 2.1, 20.1};
int size = 10;
double* sortedList = Sort::bubbleSort(list, size);
return 0;
}
排序.h:
class Sort
{
public:
static double* bubbleSort (double list[], int size);
}
;
排序.cpp:
#include "Sort.h"
#include <algorithm> // std::swap
static double* Sort::bubbleSort (double list[], int size)
{
bool changed = true;
do
{
changed = false;
for (int j = 0; j < size - 1; j++)
{
if (list[j] > list[j +1])
{
std::swap(list[j], list[j + 1]);
changed = true;
}
}
}
while (changed);
return list; // return pointer to list array
}
本质上,我试图在不创建 Sort 对象的情况下调用 bubbleSort 函数。如果我先创建一个对象,代码就可以正常工作。
什么可能导致错误?
感谢您的任何建议。