skomplikowane zawieranie się klas dynamicznych
Ostatnio zmodyfikowano 2011-02-16 18:05
inny1997 Temat założony przez niniejszego użytkownika |
skomplikowane zawieranie się klas dynamicznych » 2011-02-15 20:35:02 mam klase klasa1.
W tej klasie mam kontener wskaźników na obiekt klasa1 nazwaną tablica_wyjsc.
mam klase siec
w klasie siec mam trzy kontenery: tablica_sieci, tablica_kolejnych_ruchow, tablica_kolejnych_ruchuw_tym(wszystkie są kontenerami wskaźników na obiekt klasa1).
chce dodać nowy wskaźnik do kontenera tablica_kolejnych_ruchuw_tym.
wskaźnik ten jest wskaźnikiem posiadanym prze obiekt klasy klasa1 w tablicy_wyjsc,a ten obiekt jest jeszcze posiadany w kontenerze tablica_kolejnych_ruchów.
dla ułatwienia próbowałem coś takiego
tablica_kolejnych_ruchuw.pusch_back( tablica_kolejnych_ruchuw[ i ]->tablica_wyjsc[ j ] );
niestety nie działa |
|
pekfos |
» 2011-02-15 20:39:59 zajrzyj do kursu STC lub po prostu daj kod w [cpp] [/cpp] |
|
DejaVu |
» 2011-02-15 21:50:22 Zapewne nie działa po masz niezgodność typów. |
|
dmx81 |
» 2011-02-16 00:33:37 class klasa1 { vector < klasa1 *> v1; };
class klasa2 { vector < klasa1 *> v2; vector < klasa1 *> v3; vector < klasa1 *> v4; };
klasa2 obiekt; obiekt.v4.push_back( v3[ i ]->v1[ j ] );
cos takiego probujesz zrobic? (ps ruchÓw, puSH_back) masz w oddzielnych plikach te klasy? jesli tak, to czy zalaczasz naglowek klasa1 w klasa2? byc moze rowniez trzeba pod include "klasa1.h"
class klasa1;
class klasa2 { };
napisz jakie masz kompilator wyrzuca ci bledy, kawalek kodu (jesli to co napisalem nie pomoglo) |
|
inny1997 Temat założony przez niniejszego użytkownika |
» 2011-02-16 17:36:10 oto kod
class neuron { public: std::vector < neuron *> wejscia_elektryczne; std::vector < neuron *> wejscia_chemiczne; std::vector < float > waga_wejscia_chem; std::vector < neuron *> wyjscia; float prog; float sygnal; float suma_elektryczna; void dodaj_nowe_pol( neuron * kg, bool rodzaj, int waga = 0 ) { if( rodzaj ) { wejscia_elektryczne.push_back( kg ); waga_wejscia_chem.push_back( waga ); } else { wejscia_chemiczne.push_back( kg ); } } void wysli() { } void dodaj_nowe_wyj( neuron * kg ) { wyjscia.push_back( kg ); } neuron() { prog = 0.5; sygnal = 0; } ~neuron() { } };
class siec_neuron { std::vector < neuron *> siec; std::vector < neuron *> kolejne_neurony; std::vector < neuron *> kolejne_neurony_tym; void wysli_sygnal() { for( int i = 0; i < kolejne_neurony.size(); i++ ) { kolejne_neurony[ i ]->wysli(); for( int j = 0; j < kolejne_neurony[ i ]->wyjscia.size(); j++ ) { kolejne_neurony_tym.pusch_back( kolejne_neurony[ i ]->wyjscia[ j ] ); } } kolejne_neurony = kolejne_neurony_tym; } siec_neuron() { siec[ 0 ]->wysli(); siec[ 1 ]->wysli(); siec[ 2 ]->wysli(); for( int i = 0; i < siec[ 0 ]->wyjscia.size(); i++ ) { kolejne_neurony.pusch_back( siec[ 0 ]->wyjscia[ i ] ); } for( int i = 0; i < siec[ 1 ]->wyjscia.size(); i++ ) { kolejne_neurony.pusch_back( siec[ 0 ]->wyjscia[ i ] ); } for( int i = 0; i < siec[ 2 ]->wyjscia.size(); i++ ) { kolejne_neurony.pusch_back( siec[ 0 ]->wyjscia[ i ] ); } } ~siec_neuron() { } };
a oto komunikat błędu
100 C:\Users\Józef\Desktop\marcin\programowanie\programowanie obiektowe\siec neuronowa 2.v\main.cpp 'class std::vector<neuron*, std::allocator<neuron*> >' has no member named 'pusch_back' |
|
ison |
» 2011-02-16 17:40:45 czytaj ze zrozumieniem posty innych użytkowników push_back |
|
inny1997 Temat założony przez niniejszego użytkownika |
» 2011-02-16 18:05:16 głupi bład teraz już działa |
|
« 1 » |