tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
214
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    grasmann grasmann ist offline Rookie
    Registriert seit
    Aug 2011
    Beiträge
    8
    Hallo bin frisch angemeldet,

    ich hab mich dazu entschlossen mich in c++ einzuarbeiten, nach dem "Hello World" bin ich direkt an die Klassen gegangen, hat auch, mit anfänglichen Schwierigkeiten, alles gut funktioniert. Ich konnte eine Klasse instanzieren und die Eigenschaften in der Konsole ausgeben, kein Problem.

    Allerdings bin ich jetzt auf das erste schwierige Problem gestoßen. Und zwar:

    Ich werd erstmal vereinfacht die Klassen skizzieren:

    ClItem
    string Name
    float Gewicht
    ClInventarItem
    ClItem Item <- Hier liegt das Problem
    int Anzahl
    ClInventar
    ClInventarItem[] <- Array <- Bis hierher bin ich noch garnicht gekommen
    Meine Grundfrage ist: Wie gebe ich dem Constructor von ClInventarItem einen Parameter der eine Instanz von ClItem nimmt?

    So sieht der Constructor momentan aus:
    Code :
    1
    2
    3
    4
    
    ClInventarItem::ClInventarItem(ClItem item, int anzahl) {
        Item = item;
        Anzahl = anzahl;
    }

    Hier gibt er mir aber den Fehler: "no matching function for call to 'ClItem::ClItem()'"

    Die Klasse ClItem ist in ClInventarItem schon included.

    Ich bin schon ewig am Suchen und Probieren, kann aber irgendiwe keine Lösung finden XD, wäre also über etwas Hilfe sehr froh.
     

  2. #2
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Hi und Willkommen bei tutorials.de

    Das, was jede Klasse haben sollte (allein schon weil es "guter Stil" ist) sind ein Parameterloser Konstruktor (der laut Fehlermeldung fehlt, aber irgengendwo benötigt wird), ein Copykonstruktor und einen Zuweisungsoperator.

    Zeig einmal ClItem, dann kann ich dir genau sagen, was wohin gehört.
     

  3. #3
    grasmann grasmann ist offline Rookie
    Registriert seit
    Aug 2011
    Beiträge
    8
    Ok danke das war der Fehler .
    Kann dann erstmal als erledigt abgehakt werden.
    Vielleicht meld ich mich in naher Zukunft noch ein paar Mal wegen anderem Zeuch.

    Bis dann erstmal.
     

  4. #4
    chibisuke chibisuke ist offline Mitglied Brillant
    Registriert seit
    Sep 2003
    Beiträge
    807
    Ich würde dir so und so empfehlen keine objekte sondern nur pointer auf objekte zu übergeben.

    Das Problem bei der übergabe von objekten ist, dass das objekt jedesmal dupliziert wird, (Copy construktor aufruf), was einerseits last macht, und andererseits zu problemen führt wenn du das objekt irgendwo modifizierst. (Es wird an anderen stellen nicht automatisch mit modifiziert).
     

  5. #5
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Zitat Zitat von chibisuke Beitrag anzeigen
    Ich würde dir so und so empfehlen keine objekte sondern nur pointer auf objekte zu übergeben.
    ...oder Referenzen.

    Zitat Zitat von chibisuke Beitrag anzeigen
    Das Problem bei der übergabe von objekten ist, dass das objekt jedesmal dupliziert wird, (Copy construktor aufruf), was einerseits last macht, und andererseits zu problemen führt wenn du das objekt irgendwo modifizierst. (Es wird an anderen stellen nicht automatisch mit modifiziert).
    Muss ja nicht unbedingt ein Problem sein.
    Manchmal kann es ja auch sinnvoll und absichtlich sein.

    Gruß
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 25.11.10, 18:27
  2. Antworten: 5
    Letzter Beitrag: 02.01.10, 15:15
  3. Innerhalb einer Klasse eine Instanz einer anderen Klasse
    Von HackerNeo im Forum VisualStudio & MFC
    Antworten: 1
    Letzter Beitrag: 17.11.09, 13:08
  4. Klasse als Parameter übergeben
    Von bastianl im Forum Java Grundlagen
    Antworten: 4
    Letzter Beitrag: 22.01.09, 20:13
  5. Antworten: 4
    Letzter Beitrag: 09.07.05, 00:19