В файле с именем types.h
, я определилC2011: «структура» типа переопределение и C2027: использование неопределенного типа
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, я получаю эти заблуждаться ors
error C2011: 'entry' : 'struct' type redefinition
see declaration of 'entry'
error C2027: use of undefined type 'entry'
see declaration of 'entry'
Как это исправить?
вы иметь заголовок охранников в своем заголовке? –
Можете ли вы опубликовать [минимальный, полный пример] (http://sscce.org/)? – Angew
@ Ivaylo Strandjev: Я отредактировал сообщение и включил заголовки. – mahmood