‘print’ was not declared in this scope



  • Hi

    Ich habe bis dato in meiner main Funktion immer folgende Zeile gesetzt:

    ofstream print("./ann.txt",ios_base::out);      //Initialisiere Ausgabe-Stream print
    

    und habe dann so gut wie nie cout genommen, sondern immer print um in eine Textdatei zu schreiben. Lief bis jetzt auch gut. Nun versuche ich meine ersten Schritte in Objektorientierung und erhalte beim compilieren den Fehler:

    In member function ‘void network::activation(int*)’
    ‘print’ was not declared in this scope
    

    Hier ein Ausschnitt aus dem relevanten Code: Ich habe folgendes gemacht:

    class network
    {
    public:
    neuron nrn[ADSIZE];
    int output[ADSIZE];
    int threshld(int) ;
    void activation(int j[ADSIZE]);
    network(int*,int*,int*,int*);
    };
    
    //======================================
    
    void network::activation(int *patrn)
    {
    int i,j;
    for(i=0;i<ADSIZE;i++)
    {
    for(j=0;j<ADSIZE;j++)
    {
    print<<"\n nrn["<<i<<"].weightv["<<j<<"] is "<<nrn[i].weightv[j];
    }
    nrn[i].activation = nrn[i].act(ADSIZE,patrn);
    print<<"\nAktivierung ist "<<nrn[i].activation;
    output[i]=threshld(nrn[i].activation);
    print<<"\nAusgabe ist "<<output[i]<<"\n";
    }
    }
    

    Mit cout geht es. Muss ich da noch irgendwas cleveres mit nem Punkt oder zwei Doppelpunkten machen?

    Danke für die Hilfe und Grüße
    cpp_Jungspund


  • Mod

    Woher soll denn network::activation wissen, dass es in main ein Objekt namens print gibt?



  • In deinem Code-Beispiel definierst du print nicht.



  • cout ist eine globale Variable, print nicht. Da helfen weder Punkte noch Doppelpunkte.



  • manni66 schrieb:

    cout ist eine globale Variable, print nicht. Da helfen weder Punkte noch Doppelpunkte.

    Es wuerde ja reichen eine globale Variable dieses Namens anzulegen oder bekannt zu machen.



  • TGGC schrieb:

    manni66 schrieb:

    cout ist eine globale Variable, print nicht. Da helfen weder Punkte noch Doppelpunkte.

    Es wuerde ja reichen eine globale Variable dieses Namens anzulegen oder bekannt zu machen.

    Ja, aber man muss eben nicht "noch irgendwas cleveres mit nem Punkt oder zwei Doppelpunkten machen".


Log in to reply