Vector, Member is of non-class type.

0

Cześć!
Mam problem, mianowicie stworzyłem dwie klasy i w klasie ZbiorWierzchołków chciałbym z góry zarezerwować miejsce na 30 Wektorów2D. Niestety podczas kompilacji dostaje taki komunikat:

ZbiorWierzcholkow.cpp: In constructor 'ZbiorWierzcholkow::ZbiorWierzcholkow()':
ZbiorWierzcholkow.cpp:6:10: error: request for member 'reserve' in '((ZbiorWierzcholkow*)this)->ZbiorWierzcholkow::Wektor', which is of non-class type 'int'
   Wektor.reserve(30);
          ^
#ifndef WEKTOR2D_HH
#define WEKTOR2D_HH

#include <iostream>

using namespace std;

class Wektor2D{

  double Wektor[2];

public:
};

#endif
#ifndef ZBIORWIERZCHOLKOW_HH
#define ZBIORWIERZCHOLKOW_HH

#include <iostream>
#include <vector>
#include "Wektor2D.hh"

using namespace std;

class ZbiorWierzcholkow{
protected:
  std::vector<Wektor2D> Wektor;

public:
  ZbiorWierzcholkow();
};


#endif

#include "ZbiorWierzcholkow.hh"
#include <vector>
#include <iostream>

ZbiorWierzcholkow::ZbiorWierzcholkow(){
  Wektor.reserve(30);

}



2

jak dla mnie jest ok

wszystko się kompiluje

https://wandbox.org/permlink/bqwzS6d7VwDo5pR2

1

Luźna uwaga: zmienne oraz pola nazywaj małymi literami, np. wektor.
Luźna uwaga #2: pisz kod w języku angielskim.

1

Skąd Wektor2D ma wiedzieć co to jest Wektor? Brakuje includa. Poza tym, jak zamierzasz użyć obiektów które są zależne w taki sposób od siebie to użyj forward deklaracji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1