0

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);*/
    }
4

1 に答える 1