Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Does not name a type, pomimo, że linijkę wcześniej deklarowałem.

Ostatnio zmodyfikowano 2015-11-12 18:22
Autor Wiadomość
skjeleton
Temat założony przez niniejszego użytkownika
Does not name a type, pomimo, że linijkę wcześniej deklarowałem.
» 2015-11-12 01:34:10
Cześć, mam taki problem:

Mam plik config.hpp, w którym miałem zamiar wpisać ścieżki do plików.

Najpierw dołączyłem biblioteki:
C/C++
#include <string>
#include <vector>

Po czym napisałem deklarację vector'a string'ów.
C/C++
std::vector < std::string > GOBJ_DIRT_PATH;
GOBJ_DIRT_PATH.push_back( "bin/Data/Pics/Minerals/Dirt-1.png" ); //Path of first Dirt texture <-----------------
GOBJ_DIRT_PATH.push_back( "bin/Data/Pics/Minerals/Dirt-2.png" ); //Path of second Dirt texture

I tutaj zaznacza linię zaznaczoną strzałką i wyświetla komunikat:
error: 'GOBJ_DIRT_PATH' does not name a type

Dlaczego?

I druga sprawa, czy moglibyście powiedzieć, czy można za pomocą vectorów definiować stałe?

P-140016
michal11
» 2015-11-12 02:01:10
Pokaż więcej kodu, z tego co zrozumiałem twoje dodawanie wartości do vectora odbywa się w pliku hpp, co jest błędem musisz mieć jakąś funkcję w której będziesz wywoływał push'e do vetora.
czy można za pomocą vectorów definiować stałe?
Nie bardzo rozumiem co masz na myśli,
const vector <>
 ?
P-140017
j23
» 2015-11-12 10:55:32
(...) czy można za pomocą vectorów definiować stałe?
Trochę bez sensu, bo jeśli tablica ma być stała, to dlaczego std::vector a nie np. std::array lub po prostu zwykła tablica?

C/C++
std::array < const std::string, 4 > GOBJ_DIRT_PATH = { "value_1", "value_2", "value_3", "value_4" };

/* lub */
std::array < const char * const, 4 > GOBJ_DIRT_PATH = { "value_1", "value_2", "value_3", "value_4" };
P-140021
Monika90
» 2015-11-12 16:20:21
@j23 const dałeś w złym miejscu, co tym bardziej ma znaczenie jeżeli te definicje mają być pliku nagłówkowym.
Ale najlepiej byłoby przenieść definicję do pliku cpp, a w nagłówku zostawić tylko deklarację.
P-140033
j23
» 2015-11-12 18:22:21
W sumie masz rację, tak powinno być:
C/C++
const std::array < std::string, 4 > GOBJ_DIRT_PATH = { "value_1", "value_2", "value_3", "value_4" };

/* lub */
const std::array < const char *, 4 > GOBJ_DIRT_PATH = { "value_1", "value_2", "value_3", "value_4" };
P-140040
« 1 »
  Strona 1 z 1