Vector obiektów w klasie

0

Witam,

Mam problem z vectorem obiektów w klasie. Deklaruję w taki sposób:

std::vector<class Sprite> map;

W osobnym pliku nagłówkowym mam deklaracje tej klasy i wygląda na to, że vector nie zna rozmiaru tej klasy. Dołączenie pliku nagłówkowego nie pomaga, bo wywala znowu błąd o redefinicji klasy. Problem częsciowo rozwiązuje przekopiowanie kodu pliku nagłówkowego klasy Sprite do tego pliku.

Chcę mieć klasy w osobnych plikach *.h i *.cpp, więc jak zrobić by vector znał tego obiektu?

1

Niepotrzebne class przed Sprite.

2

class może i niepotrzebne, ale na pewno nie przeszkadza. Nie to jest przyczyną błędu.

Pokaż więcej kodu - przede wszystkim co masz w tym pliku nagłówkowym, i jak to się w ogóle rozkłada na pliki - czy ten vector jest w pliku .h czy .cpp?

0

Pewnie zle includy porobione i redefinicja jest

0

Ok, problem rozwiązałem. Chodziło o wielokrotne dołączanie plików nagłówkowych. Tyle plików, że ciężko się połapać. Zabezpieczyć się można tak:

#ifndef KLASA_H
#define KLASA_H

class Klasa
{
};

#endif
0

w Visualu wygodniej jest pisać:

#pragma once

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