sfml in klassen und vectoren



  • hi,
    habe folgendes problem. hab in einer klasse sfml-objekte wie z.b. den aufruf eines fentser oder verschiedener kleiner objekte wie vierecke usw. nun möchte das objekt , sprich also die klasse, in einem vector abspeichern. leider meldet mit der compiler immer folgenden fehler:

    1>C:\Users\Heiner\Desktop\Programmierpraktikum\SFML-1.3-sdk-windows\SFML-1.3\include\SFML/Window/Window.hpp(320) : error C2248: "sf::NonCopyable::NonCopyable": Kein Zugriff auf private Member, dessen Deklaration in der sf::NonCopyable-Klasse erfolgte.
    1>        C:\Users\Heiner\Desktop\Programmierpraktikum\SFML-1.3-sdk-windows\SFML-1.3\include\SFML/System/NonCopyable.hpp(58): Siehe Deklaration von 'sf::NonCopyable::NonCopyable'
    1>        C:\Users\Heiner\Desktop\Programmierpraktikum\SFML-1.3-sdk-windows\SFML-1.3\include\SFML/System/NonCopyable.hpp(42): Siehe Deklaration von 'sf::NonCopyable'
    1>        Diese Diagnose trat in der vom Compiler generierten Funktion "sf::Window::Window(const sf::Window &)" auf.
    

    kann mir den fehler nicht anders erklären als das man die objekte, in denen sfml klassen benutzt werden, nicht in vectoren abgespeichert werden.

    kann mir da einer weiter helfen ? wäre super



  • Da Du keinen Zeiger oder eine Referenz sondern das Objekt selbst im Vector ablegen willst, wird vom Objekt eine Kopie erzeugt. Dass es nicht unbedingt sinnvoll ist, ein Fenster zu duplizieren ist sicher leicht einzusehen. Um dies zu verhindern bietet SFML die Basisklasse NonCopyable an.


Anmelden zum Antworten