bitarray.h というヘッダー ファイルと対応する bitarray.cpp にクラスがあり、sieve.h もあります。sieve.h と bitarray.cpp には #bitarray.h が含まれており、sieve.h には関数 void Sieve(BitArray a) しかありません。Bitarray.h で宣言され、Sieve 関数から bitarray.cpp で定義されている Set() と Unset() を呼び出したいのですが、それはできません。これを修正するにはどうすればよいですか。
//sieve.h
#include "bitarray.h"
#include <cmath>
using namespace std;
void Sieve(BitArray a)
{
//initialize all to 1
for (int i = 0; i < (a.arraySize*a.unsChar*8); i++)
{
a.Set(i);
}
//unset 0 and 1 becasue they are never prime
a.Unset(0);
a.Unset(1);
//leave 2 as a 1
/*for (int i = 2; i < (a.arraySize*a.unsChar*8); i++)
a.Unset(2*i);*/
}