Fehler Header



  • Deine Header Datei ist nicht korrekt, da fehlen die include-Anweisungen für ostream . Außerdem ist ostream nicht vollständig qualifiziert. Du solltest entweder iostream oder iosfwd inkludieren und deinen ostream Typen ein "std:: voranstellen.

    Edit:
    Ich sehe gerade, dass du in deiner Header-Datei ein using namespace std stehen hast. Das gehört da definitiv nicht hin, da es das komplette namespace Konzept aushebelt. Das erklärt auch, warum der Compiler sich nicht über die fehlenden std:: Präfixe beschwert.



  • Danke die Aufgabe habe ich schon fertig .
    Bin jetzt bei dem 2 Aufgabenteil beim verzweifeln.

    https://www.pic-upload.de/view-34129557/c.png.html

    Wieder beim Konstruktor beim hängen:

    #ifndef CLOTTOTICKET_H_
    #define CLOTTOTICKET_H_
    #include<iostream>
    using namespace std;
    #include<string>
    #include "CTip.h"
    class CLottoTicket{
    private:
    	string m_name;
    	unsigned short m_maxTips;
    	unsigned short m_countTips = 0;
    	CTip* m_tips;
    
    public:
    	CLottoTicket(string name, unsigned short maxTips = 12);
    	~CLottoTicket();
    	string getName();
    	CLottoTicket& operator+=(CTip tip);
    	float winnings(CTip drawing, float winFor3, float winFor4,float winFor5,float winFor6);
    
    };
    

    cpp

    /*
     * CLottoTicket.cpp
     *
     *  Created on: 19.10.2017
     *      Author: Medion
     */
    #include<iostream>
    using namespace std;
    #include<string>
    #include"CLottoTicket.h"
    #include "CTip.h"
    CLottoTicket::CLottoTicket(string name, unsigned short maxTips ){
          m_name = name;
          if(m_maxTips >=6){
        	  m_maxTips = maxTips;
        	  for(int i = 6; i>=m_maxTips; i++){
    
        	  m_maxTips[i]= maxTips;
        	  i++;
        	  }
          }
    }
    

    Ist es so richtig das ich eine for Schleife einbaue?

    ich war mir nicht sicher ob man eine for schleife braucht ?
    Das mit dem Minimalwert habe ich weg gelassen noch.
    Ich hoffe das der code jetzt keinen shit storm auslöst 😃



  • Furz33 schrieb:

    for(int i = 6; i>=m_maxTips; i++){
    

    Ist es so richtig das ich eine for Schleife einbaue?

    Funktioniert es, oder hast Du eine Endlosschleife?



  • Eclipse meckert nur 1 mal:

    Description Resource Path Location Type
    invalid types 'short unsigned int[int]' for array subscript CLottoTicket.cpp /CTIP line 19 C/C++ Problem

    Soll ich die unsigned short in der header zu unsigned short int .... umbenennen?



  • Furz33 schrieb:

    invalid types 'short unsigned int[int]' for array subscript CLottoTicket.cpp /CTIP line 19 C/C++ Problem

    Zeile 19: m_maxTips ist KEIN Array oder Pointer.

    Was soll überhaupt die Schleife? Dir fehlen die einfachsten C++ Grundlagen, durch rumprobieren wirst Du die Aufgabe nicht lösen.



  • Furz33 schrieb:

    Soll ich die unsigned short in der header zu unsigned short int .... umbenennen?

    Du weißt überhaupt nicht was du tust oder? Lern lieber mal die Grundlagen, das da führt zu gar nix. Du kannst nicht bei jeder Aufgabe für jede Zeile Code hoffen, dass hier im Forum jemand deine Arbeit macht...



  • Ja aber in der Aufgabe steht das ich ein Array für maxTips allpkieren soll ?

    Na gut aber .
    Erfahrungsgemäss weiß ich ja , dass hier nichts erklärt wird .

    Trotzdem danke



  • Furz33 schrieb:

    Ja aber in der Aufgabe steht das ich ein Array für maxTips allpkieren soll ?

    Na gut aber .
    Erfahrungsgemäss weiß ich ja , dass hier nichts erklärt wird .

    Trotzdem danke

    Leute wie dich gibt´s hier immer wieder. Keine Eigeninitiative und konsequentes Ignorieren aller Vorschläge. Da muss man nix mehr erklären, da ist jedes einzelne Wort zu viel. Kommt ja eh´ nicht an, warum soll man sich die Mühe machen?



  • ja aber ich habe ja auch Ansätze gepostet ,da kann man ja wenigstens beim beheben der Fehler helfen ?
    Sonst macht das Forum überhaupt kein Sinn .
    Wieso soll man eine Frage stellen ,wenn man alles schon weiss?
    Aus meiner Sicht macht das keinen Sinn.



  • * CLottoTicket.cpp
     *
     *  Created on: 19.10.2017
     *      Author: Medion
     */
    #include<iostream>
    using namespace std;
    #include<string>
    #include"CLottoTicket.h"
    #include "CTip.h"
    CLottoTicket::CLottoTicket(string name, unsigned short maxTips ){
          m_name = name;
          if(m_maxTips >=6){
        	  m_maxTips = maxTips;
    
        	  m_maxTips[m_tips]= maxTips;
          }
    }
    


  • Furz33 schrieb:

    Ja aber in der Aufgabe steht das ich ein Array für maxTips allpkieren soll ?

    Na gut aber .
    Erfahrungsgemäss weiß ich ja , dass hier nichts erklärt wird .

    Trotzdem danke

    osdt_ hat Dir um 1:09 erklärt, was Dein Problem ist. Wenn Du mit den Begriffen Array und Pointer nichts anzuifangen weißt, solltest Du erstmal ein Grundlagenbuch lesen.

    VG



  • Ja ich weiss .
    Und daher war ja auch meine frage ob ich im Header das maxTips zum array machen soll?
    Aber es kam keine Antwort .
    Oder soll ich einfach neuen Speicher anlegen mit new?

    m_tips ist allerdings ein Pointer



  • Furz33 schrieb:

    Und daher war ja auch meine frage ob ich im Header das maxTips zum array machen soll?

    Die Frage habe ich beim überfliegen des Threads nicht gesehen.

    Warum sollte maxTips ein Array werden? In dem UML Diagramm sthet doch klar drin, was für ein Datentyp maxTips sein soll...

    Um mal den Zaunpfahl auszupacken: Wofür meinst du ist m_tips gedacht?



  • m_tips sind die Anzahl der Tipps ?

    Ich habe das Gefühl das ich nach an der Lösung bin ,aber irgendwie die Denkweise doch falsch ist 😃

    Das führt auch nicht zum Ziel leider

    m_tips[m_maxTips]= maxTips;
    


  • Furz33 schrieb:

    m_tips sind die Anzahl der Tipps ?

    Und wofür ist dann m_countTips?

    Und hier mal was über dynamische Arrays: http://www.cplusplus.com/doc/tutorial/dynamic/



  • das müsste dann zählen der Tipps sein



  • Furz33 schrieb:

    das müsste dann zählen der Tipps sein

    Und wo soll der Unterschied zwischen dem mitzählen der Tips und der Anzahl der Tips sein?

    Ich habe meinen obigen Post editiert und ein Link hinzugefügt, der dir vlt weiterhelfen wird.



  • Ich glaube ich hab es jetzt Schlangenmensch:

    /*
     * CLottoTicket.cpp
     *
     *  Created on: 19.10.2017
     *      Author: Medion
     */
    #include<iostream>
    using namespace std;
    #include<string>
    #include"CLottoTicket.h"
    #include "CTip.h"
    CLottoTicket::CLottoTicket(string name, unsigned short maxTips ){
          m_name = name;
          if(m_maxTips >=6){
        	  m_maxTips = maxTips;
    
        	  m_tips = new CTip [maxTips];
    
          }
          else {
        	  m_maxTips = 6;
          }
    }
    
    string CLottoTicket::getName(){
    
    	return m_name;
    }
    

    Zumindest keine Fehler mehr 😃



  • Kein Compiler Fehler heißt leider nicht, korrekte Funktionsweise.

    1. du vergleichst auf m_maxTips (also auf die Member Variable), dass ist nicht was du möchtest.

    2. Im else Zweig reservierst du keinen Speicher.



  • Wieso soll ich im else Zweig nicht die member Variable nehmen?

    [code="cpp"]/*
    * CLottoTicket.cpp
    *
    * Created on: 19.10.2017
    * Author: Medion
    */
    #include<iostream>
    using namespace std;
    #include<string>
    #include"CLottoTicket.h"
    #include "CTip.h"
    CLottoTicket::CLottoTicket(string name, unsigned short maxTips ){
    m_name = name;
    if(m_maxTips >=6){
    m_maxTips = maxTips;

    m_tips = new CTip [maxTips];

    }
    else {
    m_tips = new CTip [maxTips];
    maxTips = 6;
    }
    }

    string CLottoTicket::getName(){
    return m_name;}


Anmelden zum Antworten