C++ とアルゴリズムを学び始めたとき。モジュール パラダイムでコードをグループ化したい。そのため、次のように、並べ替え手順を 3 つのファイルに分割しました。
namespace sort
{
void insertSort(int* a,int size);
}
sort.cpp
#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;
}
}
main.cpp
#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++ を使用して 3 つのファイルをコンパイルした場合。以下のエラー情報を取得しました。
[リンカ エラー] `sort::insertSort(int*, int)' への未定義の参照
どうしてか分かりません。ファイル「sort.h」をインクルードしたと思いますが、コンパイルがメソッドを参照できないと私に言っているのはなぜsort::insertSort()
ですか?