当我开始学习 C++ 和算法时。我想在模块范式中对代码进行分组。所以我把排序过程分成了3个文件,如下:
sort.h
namespace sort
{
void insertSort(int* a,int size);
}
排序文件
#include "sort.h"
namespace sort
{
}
void sort::insertSort(int* a,int size)
{
int i,j,key;
for(j=1;j<size;j++)
{
key=a[j];
i=j-1;
while(i>=0 && a[i]>key)
{
a[i+1]=a[i];
i=i-1;
}
a[i+1]=key;
}
}
主文件
#include<iostream>
#include"sort.h"
int main()
{
int a[6]={5,2,4,6,1,3};
sort::insertSort(a,6);
for(int i=0;i<6;i++) std::cout<<a[i]<<'\t';
return 0;
}
当我使用 Dev-C++ 编译这三个文件时。我得到以下错误信息:
[链接器错误] 未定义对 `sort::insertSort(int*, int)' 的引用
我不知道为什么。我想我已经包含了文件“sort.h”,那么为什么它还告诉我编译不能引用该方法sort::insertSort()
?