Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Suchergebnisse

Suchergebnisse 1-12 von insgesamt 12.

Werbeanzeige

12.03.2016, 14:09

Forenbeitrag von: »numbo«

SFML Zugriffsverletzung beim Lesen

Zitat Ich gehe sogar noch ein Schritt weiter und sage lass den selbst geschriebenen Kopierkonstruktor weg und lass den Compiler diese arbeit machen. Ich habe noch eine weitere Klasse, die von Button erbt(ButtonRectangle) siehe Git. Diese hat ihren eigenen Kopierkonstruktor, der wiederum den von Button aufruft. Würde C-/C++-Quelltext 1 2 3 4 5 ButtonRectangle::ButtonRectangle(const ButtonRectangle &otherBR) { setButton(*otherBR.getButton()); setShape(*otherBR.getShape()); } reichen? Oder doch li...

11.03.2016, 17:29

Forenbeitrag von: »numbo«

SFML Zugriffsverletzung beim Lesen

Also würde C-/C++-Quelltext 1 m_text.setFont(otherButton.getFont()); reichen?

11.03.2016, 14:01

Forenbeitrag von: »numbo«

SFML Zugriffsverletzung beim Lesen

Geht! Aber nun zum Kopierkonstruktor: Ich habe Button.h um folgendes erweitert: C-/C++-Quelltext 1 2 int FM_font_used_index; FontManager *FM_Pointer; FM_Pointer, FM_font_used_index werden im Konstruktor definiert C-/C++-Quelltext 1 :FM_font_used_index(p_FM_index), FM_Pointer(&p_FM) Mein Kopierkonstruktor sieht nun so aus: C-/C++-Quelltext 1 2 3 4 5 6 7 8 9 Button::Button(const Button &otherButton) :active(otherButton.getActive()) { m_text.setFont(*otherButton.FM_Pointer->FM_getFont(otherButton.F...

10.03.2016, 23:24

Forenbeitrag von: »numbo«

SFML Zugriffsverletzung beim Lesen

Ab jetzt gibt dieser nur noch pointer auf das Font zurück. Allerdings bleiben oben genannte Probleme bestehen

10.03.2016, 14:45

Forenbeitrag von: »numbo«

SFML Zugriffsverletzung beim Lesen

Meine FontManager Klasse sieht jetzt folgendermaßen aus: C-/C++-Quelltext 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #pragma once #include "Game.h" class FontManager { public: FontManager(); ~FontManager(); void setFont(std::string p_direction, int p_index); void addFont(std::string p_dircetion); sf::Font FM_getFont(int p_index) const; private: std::vector<sf::Font> m_font; // 1: Cabin, 2: Berlin Sans, 3: arial }; Ein Objekt dieser Klasse ist jetzt außerdem an zentraler Stelle im Projekt erste...

09.03.2016, 19:45

Forenbeitrag von: »numbo«

SFML Zugriffsverletzung beim Lesen

Ich habe mir nun eine FontManager Klasse erstellt, inder alle Fonts geladen werden: C-/C++-Quelltext 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class FontManager { public: FontManager(); ~FontManager(); void setFont(std::string p_direction, int p_index); sf::Font FM_getFont(int p_index) const; private: sf::Font m_font[3]; // 1: Cabin, 2: Berlin Sans, 3: arial }; Meine Button Klasse erbt von dieser und den KopierKonstruktor habe ich angepasst: C-/C++-Quelltext 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Button:...

09.03.2016, 06:56

Forenbeitrag von: »numbo«

SFML Zugriffsverletzung beim Lesen

Die getFont Funktion gibt eigentlich nur den Font des Textes zurück (*m_text.getFont()). m_text = otherButton.text würde doch alle Attribute von sf::Text kopieren, ich brauche aber nur diese wenigen. Das sollte doch das Problem lösen, oder? Wenn nicht, wie könnte ich sonst noch vorgehen?

08.03.2016, 16:29

Forenbeitrag von: »numbo«

SFML Zugriffsverletzung beim Lesen

Erstmal vielen Dank für die schnellen Antworten! Ich habe nun einen Kopierkonstruktor erstellt : C-/C++-Quelltext 1 2 3 4 5 6 7 8 Button::Button(Button &otherButton) { m_text.setFont(otherButton.getFont()); m_text.setCharacterSize(otherButton.getSize()); m_text.setPosition(otherButton.getPos()); m_text.setString(otherButton.getString()); m_text.setColor(otherButton.getColor()); } "const" konnte ich hier nicht verwenden, da ich auf die Funktionen der "otherButton" Klasse Zugriff benötige. Stimmt ...

08.03.2016, 14:01

Forenbeitrag von: »numbo«

SFML Zugriffsverletzung beim Lesen

Ich habe jetzt unique_ptr beim erstellen im Vector genommen. Sind die Klassen nun ok? Hier nochmal das Projekt auf Git: TowerDefense

06.03.2016, 23:55

Forenbeitrag von: »numbo«

SFML Zugriffsverletzung beim Lesen

Zitat von »BlueCobold« Du kopierst den Button, damit den Text und den Font. Dabei werden alle Deine Referenzen ungültig. Wird in dem Vector nicht ein neues Object der Klasse Button gespeichert? An welcher Stelle wird der Kopierkonstruktor aufgerufen? Bitte berichtige mich, wenn ich falsch liege.

06.03.2016, 20:33

Forenbeitrag von: »numbo«

SFML Zugriffsverletzung beim Lesen

Ich bin gerade dabei ein Spiel zu erstellen. Ich habe die Klasse Button erstellt und 3 Objekte davon in eine Vector in MainMenuState.cpp(im Konstruktor) gespeichert. Wenn man folgende Zeilen auskommentiert kommt der Zugriffsverletzungsfehler: C-/C++-Quelltext 1 2 3 m_buttons[0].setFont("assets//font//arial.ttf"); m_buttons[1].setFont("assets//font//arial.ttf"); m_buttons[2].setFont("assets//font//arial.ttf"); Dies ist aber eigentlich das selbe, das der Konstruktor in "Button.cpp" macht, deshalb ...

Werbeanzeige