Speicher anlegen



  • Kannst du vielleicht ein wenig erklären wie das mit vector geht ?

    Wenn ich es verstehe könnte ich es bei der Prüfung anwenden und glänzen 😃



  • #include <vector>
    #include<iostream> 
    
    class CTeamTable { 
       std::vector<CTeam> m_table; 
    
    public: 
        void addTeam(CTeam const& team) { m_table.push_back(team); }
        void print(string headline); 
        bool addResult(string team1,string team2,unsigned int goalsTeam1, unsigned int goalsTeam2); 
        void sort(); 
    };
    


  • Weiss jemand wie man den index der nächsten freien position auf array setzen kann?

    Wie ist die denkweise dabei.

    Ich will es mit zeigern probieren



  • xxxpert schrieb:

    #include "CTeamTable.h"
    #include<iostream>
    using namespace std;
    
        unsigned int m_maxEntry;
    	unsigned int m_curEntry = 0;
    CTeamTable::CTeamTable(int unsigned maxEntry = 10){
        if(m_maxEntry >=5){
    	m_maxEntry = maxEntry;
        }
    
        if(m_curEntry < m_maxEntry){
    
        	m_curEntry = curEntry;
        }
    
        CTeam* m_pTable;
        m_pTable = new CTeam[m_maxEntry];
    
    }
    

    Du legst eine lokale Variable mit dem Namen m_pTable an und weist ihm den Speicher zu. Dann verlässt das Programm den Scope und der Zeiger ist verloren. Die Membervariable mit dem Namen m_pTable wird nicht initialisiert.

    Nicht der einzige Fehler, aber der, der am besten zur Frage passt.

    Dass Du m_maxEntry und m_curEntry verwendest, ohne sie zu initialisieren, wird Dein Compilier mit geeigneter Warnstufe erkennen.



  • Warum wird mir immer noch hier Fehler angezeigt ?
    m_pTable = new CTeam[m_maxEntry];
    Verstehe ich nicht . Im header habe ich es ja so includiert wie im UML Diagramm

    #include "CTeamTable.h"
    #include "CTeam.h"
    #include<iostream>
    using namespace std;
    
        unsigned int m_maxEntry =5;
    	unsigned int m_curEntry = 0;
    CTeamTable::CTeamTable(int unsigned maxEntry = 10){
    	if (maxEntry < 5){
    
    		maxEntry = 5;
    	    m_maxEntry = maxEntry;
    	    m_curEntry = 0;
    	}
    
        CTeam* m_pTable;
        m_pTable = new CTeam[m_maxEntry];
    
    }
    
    CTeamTable::~CTeamTable(){
    
    	delete[] m_pTable;
    }[code]
    
    Header
    

    #ifndef CTEAMTABLE_H_
    #define CTEAMTABLE_H_
    #include<iostream>
    #include "CTeam.h"
    using namespace std;

    class CTeamTable {
    private:
    CTeam* m_pTable;
    unsigned int m_maxEntry;
    unsigned int m_curEntry;

    public:
    CTeamTable(int unsigned maxEntry);
    ~CTeamTable();
    bool addTeam(CTeam const& team)const;
    void print(string headline);
    bool addResult(string team1,string team2,unsigned int goalsTeam1, unsigned int goalsTeam2);
    void sort();

    };

    #endif /* CTEAMTABLE_H_ */
    [code]
    Woran erkenne ich denn die erste freie Position eines Array?


  • Mod

    Das ist immer noch der gleiche Code, wie im ersten Beitrag, mit sämtlichen Fehlern, die schon genannt wurden. Wenn du nur jemanden suchst, der dir deine Hausaufgaben macht und du sonst gar nichts lesen willst, dann sag das gleich. Vielleicht findet sich sogar jemand. Alle anderen können dann aufhören, ihre Zeit mit dir zu verschwenden.



  • Eigentlich ist dieser Code anders gewesen .

    Es handelt sich um keine Hausaufgabe.

    Ich wollte mit dieser Übung nur lernen .

    Ich dachte im Forum wird erklärt was man nicht versteht.

    Wenn man alles selber weiss,brauch man doch gar nicht zu fragen 😃



  • Man lernt nicht durch rum probieren. Nimm ein gutes C++ Buch und arbeite es systematisch durch. Dann wirst Du die Konzepte verstehen. Wenn Du eine konkrete Frage hast, dann helfen wir Dir sehr gerne. Aber wir werden Dir nicht C++ bei bringen. Dafür gibt es eben diese Bücher.



  • Achso ok . Das wusste ich nicht .

    Dann hättet ihr auch schreiben sollen . ( Forum nur für Experten )

    Dann macht es eigentlich auch kein Sinn Fragen rein zu stellen .



  • No, jetzt ist er aber sauer. Vielleicht sollte er das nächste mal eine richtige Frage stellen 🤡 .


Anmelden zum Antworten