www.matheraum.de
Das Matheforum.
Das Matheforum des MatheRaum.

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenC/C++Liste als Klasse
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Geschichte • Erdkunde • Sozialwissenschaften • Politik/Wirtschaft
Forum "C/C++" - Liste als Klasse
Liste als Klasse < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "C/C++"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Liste als Klasse: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 14:35 Sa 23.01.2010
Autor: nana

Hallo, folgendes Programm hatten wir in der Vorlesung; ich versteh es auch eig , hab aber ein paar Fragen zu den Funktionen...hoffe ihr könnt mir helfen

hier erstmal die Def der Klasse CList (nur weil man sonst die funktionsparameter nicht so ganz versteht):

class CList {
private:
struct CListElement {
   int digit;
   CListElement* next;
   CListElement(int d, CListElement* n) {
       digit = d; next = n;}
};
/* doch eine Frage: eig ist CListElement doch ein struct, aber hier ist ein Konstruktor drin, oder gibt es die auch in structs??*/
CListElement* head;
};

CList(){ head =NULL;};
// falls liste erst neu erstellt werden muss
void CList::cinsertTop (int r) {
head = new CListElement(r,head);
}
/*Das verstehe ich nicht so ganz: also das neue El, das oben eingefügt werden soll hat den wert r und der zeiger ist head, das ist klar, aber head ist doch eigentlich der zeiger der liste der immer auf das erste el zeigen soll, aber head wurde ja gar nicht verändert (muss head dann nicht auch als referenzparameter üebrgeben werden)??  */

Zum Finden eines El:

bool CList::cfind ( int r) {
if (head == NULL){
return false;
}
else {
/*l wird zum Durchlauf
verwendet*/
CListElement* l = head;
while ((l != NULL) &&(l->digit != r)) {
l = l->next;
};
return (l != NULL);
}
}
/*ich versteh dieses programm bis auf den schluss: was bedeutet "return (l!= NULL)" in diesem Zusammenhang??  */

Vielen Dank für alle Antworten,
lg, nana

        
Bezug
Liste als Klasse: Antwort
Status: (Antwort) fertig Status 
Datum: 15:35 Sa 23.01.2010
Autor: Karl_Pech

Hallo nochmal nana,


> class CList {
>  private:
>   struct CListElement {
>     int digit;
>     CListElement* next;
>     CListElement(int d, CListElement* n) {
>         digit = d; next = n;}
>   };
>  /* doch eine Frage: eig ist CListElement doch ein struct,
> aber hier ist ein Konstruktor drin, oder gibt es die auch
> in structs??*/


Das war jetzt auch für mich neu. Aber offenbar haben structs in C++ im Vergleich zu C eine etwas andere Bedeutung: [][guckstduhier].


>  void CList::cinsertTop (int r) {
>  head = new CListElement(r,head);
>  }
>  /*Das verstehe ich nicht so ganz: also das neue El, das
> oben eingefügt werden soll hat den wert r und der zeiger
> ist head, das ist klar, aber head ist doch eigentlich der
> zeiger der liste der immer auf das erste el zeigen soll,
> aber head wurde ja gar nicht verändert (muss head dann
> nicht auch als referenzparameter üebrgeben werden)??  */


Mir ist die Frage nicht ganz klar, weil 'head' doch als Parameter übergeben wird. Am Anfang ist head == NULL. Jetzt rufen wir mal cinsertTop(0) auf. Dann wird auf dem Heap ein neues Objekt vom Typ 'CListElement' erstellt. Bei der Erstellung werden an den Konstruktor dieses Objektes 0 und NULL übergeben: new CListElement(r,head). Im Konstruktor-Rumpf werden die internen Variablen digit und next dieses neuen Objektes/Listenelementes gesetzt. Danach springt das Programm zurück zu cInsertTop. Das fertig erstelle Listenelement wird nun der internen Variablen head zugewiesen. Das Ergebnis sieht so aus:


head -> |0|.next == NULL


Beim nochmaligen Aufruf von cinsertTop() wird nun der neue Wert von head an den Konstruktor CListElement für ein neues Listenelement übergeben:


head -> |1|.next -> |0|.next == NULL


>  return (l != NULL);
>  /*ich versteh dieses programm bis auf den schluss: was
> bedeutet "return (l!= NULL)" in diesem Zusammenhang??  */


Ist l ungleich NULL, d.h. wurde das Element gefunden, ergibt der Ausdruck (l != NULL) den Wert 'true'. Ansonsten ist der Ausdruck 'false'. Bei if-Abfragen benutzt du ja auch ständig solche Klammerausdrücke: if(l != NULL); Warum also nicht auch return(l != NULL)? ;-)



Viele Grüße
Karl




Bezug
                
Bezug
Liste als Klasse: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 22:10 Mi 03.02.2010
Autor: nana

Hey vielen Dank!!
(zum wiederholten Mal ;) )
für die Hilfe, habs jetzt verstanden, obwohl ich zugeben muss dass ich noch ein paar kleine verständnisprobleme hab bzgl benutzung von referenzparametern bei einer klasse list oder so ....
Aber auf jeden Fall danke...
Lg, nana

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "C/C++"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.matheforum.net
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]