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

Skomplikowane dziedziczenie

Ostatnio zmodyfikowano 2011-05-02 12:32
Autor Wiadomość
Savail
Temat założony przez niniejszego użytkownika
Skomplikowane dziedziczenie
» 2011-05-02 10:59:04
Hej
No wiec mam pewien dosc obszerny blok kodu w pliku naglowkowym i zrodlowym. W pliku zrodlowym uzywane i modyfikowane sa zmienne wlasnie z  pliku naglowkowego o tej samej nazwie co plik zrodlowy, a chcialbym aby w zaleznosci od pewnych warunkow aby ten moj blok kodu bral zmienne z innych plikow naglowkowych i modyfikowal wlasnie te zmienne pobrane z innych plikow naglowkowych. Czyli zeby uzywal tak jakby zmiennych z wlasnego pliku naglowkowego ale zeby te zmienne byly pobrane z innego pliku naglowkowego i modyfikowaly tez tamtejsze zmienne a nie te z wlasnego pliku naglowkowego :P
Jest cos takiego mozliwe?
P-32427
pekfos
» 2011-05-02 11:06:35
chcesz aby kod w .cpp modyfikował zmienne z różnych plików .h w zależności od jakichś warunków? jeżeli zmienne mają te same nazwy i nie są w różnych przestrzeniach nazw to wywali multiple definition.
P-32428
szyx_yankez
» 2011-05-02 11:07:59
Może przedstaw to jakoś schematycznie(prosty kod), bo jakoś nie wiem o co chodzi Ci dokładnie...
P-32429
Savail
Temat założony przez niniejszego użytkownika
» 2011-05-02 11:10:17
tzn, te zmienne mialyby takie same nazwy ale bylyby w innych klasach. I wlasnie chcem zrobic to co napisales ale z uwzglednieniem ze aby 1 zmienna np z klasy Play modyfikowala zmienne z roznych plikow naglowkowych(z roznych klas przy okazji) w zaleznosci od jakischtam warunkow
P-32431
pekfos
» 2011-05-02 11:11:43
to include wszystkich nagłówków i modyfikuj? pokaż co już napisałeś
P-32432
Savail
Temat założony przez niniejszego użytkownika
» 2011-05-02 11:14:57
O cos takiego mi chodzi:
C/C++
else if( !run_pressed && RunState == true && jump_animation == false && block_animation == false && !RunKick_animation )
{
    horizontally = true; obrot = true; obrot_jump = true; run = true; left = true; right = false; run_pressed = true;
}
I te wszystkie zmienne naleza do klasy Play i modyfikuja zmienne w pliku naglowkowym klasy. Chcialbym aby te zmienne przyjmowaly dane z innych plikow naglowkowych i modyfikowaly te zmienne z ktorych braly dane, chociaz pochodza z innych plikow naglowkoywch i klas :P i zeby zapis pozostawal taki jak powyzej bez koniecznosci dodawania np:
postac1::obrot = true lub postac2::obrot = false;...
 Ciezko to wytlumaczyc ;p
P-32433
pekfos
» 2011-05-02 11:16:49
[cpp][/cpp]

to jak zamierzasz wyperswadować kompilatorowi co z czego chcesz brać?
nie można brać danych z nagłówków bo musiałbyś tam deklarować zmienne które w końcu zaczęły by wywoływać błędy. ten zapis: COS::cos oznacza że bierzesz statyczne składowe którym nie można nadać wartości w plikach .h bez wywoływania błędów przy wielu plikach. nic z twojej wypowiedzi się nie klei jak byś nie miał o tym pojęcia.

daj cały kod jaki masz skoro nie wiesz jak co się nazywa.
P-32434
Savail
Temat założony przez niniejszego użytkownika
» 2011-05-02 11:37:25
no dobra pare bledow moze popelnilem ale to z pospiechu :P. Chodzilo mi o zapis np: Postac1::Obj().obrot = true;
Czyli tworzenie obiektu metoda Singleton...
Ok mam plik zrodlowy Play.cpp i Play.h:
Play.h:
C/C++
class Play
{
public:
    void Start();
    void get_elements();
    float pos_x1, pos_z1;
    bool elements_init;
};
Play.cpp:
C/C++
void Play::get_elements()
{
    if( warunek, okreslajacy skad pos_x1 ma brac dane )
         pos_x1 = odpowiednia_klasa::Obj().pos_x1; // z innego pliku naglowkowego
   
}
void Play::Start()
{
    if( !elements_init ) { get_elemets(); elements_init = true; }
   
    if( strzalka w prawo ) pos_x1++; //I zeby ta zmienna przechowywala dane i modyfikowala zmienną z odpowiednia_klasa::Obj().pos_x1;(jak w get_elements zostalo okreslone), zeby byla tak jakby posrednikiem
   
}

Mam nadzieje ze teraz wszystko jasne ;p. Tak sie zastanawiam czy zwykle wskazniki by wystarczyly?
P-32435
« 1 » 2
  Strona 1 z 2 Następna strona