frage zu klassen



  • omfg schrieb:

    @ssm: Wie blöd bist du eigentlich?

    fuck off



  • header

    class bday {private:
                struct daten{char* name;
                             char* vorname;
                             int datum[2];
                             daten *next;
                             daten *prev;
                            };
                typedef daten* knoten;
                typedef daten* pos;
                pos start;
                pos stop;
                public:
                bday();
                void alles();
                daten* wohin(int stelle);
    
               };
    

    Implementierung

    class bday {private:
                struct daten{char* name;
                             char* vorname;
                             int datum[2];
                             daten *next;
                             daten *prev;
                            };
                typedef daten* knoten;
                typedef daten* pos;
                pos start;
                pos stop;
                public:
                bday();
                void alles();
                daten* wohin(int stelle);
    
               };
    


  • so wies da steht funktioneirts beim bcb wirklich nicht, aber so:

    class bday{
        private:
            struct daten{
            };
            daten a;
            public:
            daten alles(){
                return a;
            }
    };
    

    der bcb brauch ne instanz, dann funktionierts fehlerfrei

    den rückgabewert von alles kannste aber trotzdem nicht benutzen, dafür müssteste die structur dann public machen.

    also so:

    class bday{
        public:
            struct daten{
            };
            daten alles(){
                return a;
            }
        private:
            daten a;
    };
    int main(
    {
        bday a;
        bday::daten b;
        b=a.alles();
        return 0;
    }
    


  • @SideWinder

    Die struct ist lokal in der Klasse definiert und soll
    von einer public Funktion zurückgegeben werden.
    Das Problem liegt also bei lokal, nicht bei private.

    Jockelx



  • lhk schrieb:

    header

    class bday {private:
                struct daten{char* name;
                             char* vorname;
                             int datum[2];
                             daten *next;
                             daten *prev;
                            };
                typedef daten* knoten;
                typedef daten* pos;
                pos start;
                pos stop;
                public:
                bday();
                void alles();
                daten* wohin(int stelle);
    
               };
    

    Implementierung

    class bday {private:
                struct daten{char* name;
                             char* vorname;
                             int datum[2];
                             daten *next;
                             daten *prev;
                            };
                typedef daten* knoten;
                typedef daten* pos;
                pos start;
                pos stop;
                public:
                bday();
                void alles();
                daten* wohin(int stelle);
    
               };
    

    Heder = Implementierung 😃



  • ssm schrieb:

    omfg schrieb:

    @ssm: Wie blöd bist du eigentlich?

    fuck off

    Na, na, na, Trolle sollte man auf keinen Fall füttern, einfach ignorieren.



  • sowas aber auch

    #include <iostream.h>
    #include "bday.h"
    //Konstruktor
    bday::bday()
    {knoten kopf = new daten;
     knoten ende = new daten;
     kopf->next=ende;
     kopf->prev=NULL;
     kopf->name="kopf";
     start=kopf;
     ende->next=NULL;
     ende->prev=kopf;
     ende->name="ende";
     stop=ende;
    }
    
    //Trace: durchläuft die Liste einmal Vorwärts und einmal rückwärts
    void bday::alles()
    {cout<<"vorwaerts"<<endl;
    
    for (pos i=start;i->next!=NULL ;i=i->next)
        { cout<<i->name<<endl;
        }
    
    cout<<"rueckwaerts"<<endl;
    
    for (pos i=stop;i->prev!=NULL ;i=i->prev)
        {    cout<<i->name<<endl;
        }
    }
    
    //wohin: sucht die stelle an der etwas gemacht werden soll
    
    daten* bday::wohin(int stelle)
    { pos p=start;
    
      while (stelle!=0)
            {if (p==stop)return p->prev;
             p=p->next;
             stelle--;
            }
      return p;
    }
    

    @Jockelx: Und was heisst das genau für mich?



  • Ich versteh das Problem nicht.
    Da du die struct doch ausserhalb der Klasse verwenden willst,
    definier sie doch auch ausserhalb. Damit ist das Problem doch erledigt.

    Jockelx


Anmelden zum Antworten