という名前のファイルでtypes.h
、定義しました
struct entry {
entry( int a, int t ) : addr(a), time(t) {}
int addr;
int time;
};
別のファイルで、次のような構造体を使用したいcompress.h
:
#include "types.h"
#include <vector>
class Compress {
public:
void insert( int a, int t )
{
theVec.clear();
for (int i = 0; i < 10; ++i)
theVec.push_back( entry(a, t) );
}
private:
std::vector< entry > theVec;
};
メインファイルには、
#include "compress.h"
int main()
{
Compress *com = new Compress;
com->insert(10, 100);
return 0;
}
ただし、push_back の行で、これらのエラーが発生します
error C2011: 'entry' : 'struct' type redefinition
see declaration of 'entry'
error C2027: use of undefined type 'entry'
see declaration of 'entry'
どうすれば修正できますか?