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

wypelnienie tablicy w klasie

Ostatnio zmodyfikowano 2010-10-30 16:21
Autor Wiadomość
dmx81
Temat założony przez niniejszego użytkownika
wypelnienie tablicy w klasie
» 2010-10-30 14:53:37
C/C++
// moja klasa
class array
{
public:
    array();
    float tex[ 2 ];
    float col[ 4 ];
    float nor[ 3 ];
    float ver[ 3 ];
};

//tworze obiekt klasy chcac od razu wypelnic pola, ale cos nie wychodzi, chce zrobic na wzor tego:

Vertex cube[] =
{
    // sciana gorna
    { 0.0f, 0.0f, 1.0f, 1.0f, - 1.0f },
    { 1.0f, 0.0f, - 1.0f, 1.0f, - 1.0f },
    { 1.0f, 1.0f, - 1.0f, 1.0f, 1.0f },
    { 0.0f, 1.0f, 1.0f, 1.0f, 1.0f },
};

//z tym, ze to powyzej jest jako zmienna globalna, a ja mam to w klasie(no i inny format wpisanych danych, tam ma float[2]float[3]

//a tu moj przyklad do rozwiazania:

void gl::set_array()
{
    o_array = new array;
    o_array = { 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0 }; //blednie
   
}

void gl::set_array()
{
    o_array = new array[]
    {
        { 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0 }
    }; //rowniez blednie
}

wiem, ze to podstawy, ale sie zacialem na tym :/ wiec prosze o pomoc.  potrafie to rozpisac uzupelniajac kazdy element osobno, tzn
C/C++
o_array->tex[ 0 ] = 1;
o_array->tex[ 1 ] = 1;
//.... itd, ale nie o to mi chodzi, a wlasnie o takie wypisanie za jednym razem calego obiektu

}
P-23431
pekfos
» 2010-10-30 15:34:28
pewnie że błędnie. inicjalizacja agregatowa jest dozwolona tylko przy inicjalizacji zmiennych deklarowanych statycznie. rób pętlą, wczytaj z pliku, lub inne takie.
P-23434
michalp
» 2010-10-30 16:21:30
Ewentualnie skorzystaj z C++0x`owej listy inicjalizacyjnej (
std::initializer_list
) i przeciąż
operator =
. G++ 4.5.0 ma zaimplementowany ten feature.
P-23437
dmx81
Temat założony przez niniejszego użytkownika
» 2010-10-30 16:21:50
aha, czyli nie da sie "uproscic" tego procesu w ten sposob :( no trudno, bede dalej tradycyjnie walczyl:P przynajmniej jedno dobre, dowiedzialem sie nowego slowka - inicjalizacja agregatowa:)

P-23438
« 1 »
  Strona 1 z 1