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

skomplikowane zawieranie się klas dynamicznych

Ostatnio zmodyfikowano 2011-02-16 18:05
Autor Wiadomość
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
C/C++
tablica_kolejnych_ruchuw.pusch_back( tablica_kolejnych_ruchuw[ i ]->tablica_wyjsc[ j ] );
niestety nie działa
P-28259
pekfos
» 2011-02-15 20:39:59
zajrzyj do kursu STC lub po prostu daj kod w [cpp] [/cpp]
P-28261
DejaVu
» 2011-02-15 21:50:22
Zapewne nie działa po masz niezgodność typów.
P-28265
dmx81
» 2011-02-16 00:33:37
C/C++
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 ] ); //a moze obiekt.v4.push_back(obiekt->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
C/C++
include "klasa1.h"
//dodac
class klasa1;
//a pod spodem
class klasa2
{
    //kod
};
napisz jakie masz kompilator wyrzuca ci bledy, kawalek kodu (jesli to co napisalem nie pomoglo)
P-28269
inny1997
Temat założony przez niniejszego użytkownika
» 2011-02-16 17:36:10
oto kod
C/C++
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()
    {
        //pominięte
    }
   
    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 ] ); ////błąd
            }
        }
        kolejne_neurony = kolejne_neurony_tym;
        //kolejne_neurony_tym wyczyścić
    }
   
    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 ] ); ////błąd
        }
       
        for( int i = 0; i < siec[ 1 ]->wyjscia.size(); i++ )
        {
            kolejne_neurony.pusch_back( siec[ 0 ]->wyjscia[ i ] ); ////błąd
        }
       
        for( int i = 0; i < siec[ 2 ]->wyjscia.size(); i++ )
        {
            kolejne_neurony.pusch_back( siec[ 0 ]->wyjscia[ i ] ); ////błąd
        }
    }
   
    ~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'
P-28295
ison
» 2011-02-16 17:40:45
czytaj ze zrozumieniem posty innych użytkowników
push_back
P-28297
inny1997
Temat założony przez niniejszego użytkownika
» 2011-02-16 18:05:16
głupi bład teraz już działa
P-28298
« 1 »
  Strona 1 z 1