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!

Werbeanzeige

moritz31

Treue Seele

  • »moritz31« ist der Autor dieses Themas

Beiträge: 259

Wohnort: Hessen

Beruf: Student

  • Private Nachricht senden

1

02.05.2011, 21:21

SFML Fenster übergeben

Hi Leute,
hab ma wieder ein Problem,
ich habe in meiner main mit sf::Render Window ein Window erstellt,
nun habe ich mir eine Klasse mit bestimmten Funktionen geschrieben,
die alle das Fenster brauchen.
Habe es jetzt schon mit sf Window Window und sf::RenderWindow versucht und immer habe ich diese Fehlermeldung bekommen

Quellcode

1
2
3
4
5
>c:\users\moritz\desktop\sfml-1.6\include\sfml\window\window.hpp(321): error C2248: "sf::NonCopyable::NonCopyable": Kein Zugriff auf private Member, dessen Deklaration in der sf::NonCopyable-Klasse erfolgte.
1>          c:\users\moritz\desktop\sfml-1.6\include\sfml\system\noncopyable.hpp(57): Siehe Deklaration von 'sf::NonCopyable::NonCopyable'
1>          c:\users\moritz\desktop\sfml-1.6\include\sfml\system\noncopyable.hpp(41): Siehe Deklaration von 'sf::NonCopyable'
1>          Diese Diagnose trat in der vom Compiler generierten Funktion "sf::Window::Window(const sf::Window &)" auf.
1>  Klassen.cpp

BLU3 L30PARD

Treue Seele

Beiträge: 336

Wohnort: Hoch oben im Norden Schleswig Holsteins

Beruf: Schüler

  • Private Nachricht senden

2

02.05.2011, 21:29

Du musst ein "&" vor das RenderWindow machen:

Quellcode

1
2
3
4
5
6
7
8
// [...]
void function(sf::RenderWindow &window)
{
    // BLA
}

// [...]
function(App);

Gaaaaaaanz easy ;)

moritz31

Treue Seele

  • »moritz31« ist der Autor dieses Themas

Beiträge: 259

Wohnort: Hessen

Beruf: Student

  • Private Nachricht senden

3

02.05.2011, 21:51

kann man des auch mit pointernlösen
und wäre das nicht die bessere idee?

4

02.05.2011, 22:08

Ja könnte man auch.
Warum wäre das besser?

Gruß
SaRu_

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

5

02.05.2011, 23:39

Ein pointer hat nur den Nachteil, dass man auch null übergeben könnte.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Werwofl

Treue Seele

Beiträge: 100

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

6

03.05.2011, 15:27

Ein pointer hat nur den Nachteil, dass man auch null übergeben könnte.

Was du wiederum mit einer Exception abfangen könntest ;)

Ich bin ein Freund des "rumpointernts". Warum? Weiß ich nicht. Ich finde es für mich persönlcih übersihctlicher mit Pointern zu arbeiten. Ob du jetzt mit Referenzen oder Pointern arbeitest hängt letztendlich von deinem persönlichen (oder halt aufgezwungenen) Stil ab.

BLU3 L30PARD

Treue Seele

Beiträge: 336

Wohnort: Hoch oben im Norden Schleswig Holsteins

Beruf: Schüler

  • Private Nachricht senden

7

03.05.2011, 16:25

Ich verstehe die Problematik von einem simplen "&" nicht...
Aber wenn du meinst, du musst das so machen...

Lerikson

Alter Hase

Beiträge: 412

Wohnort: nördlich von Hamburg

Beruf: Schüler

  • Private Nachricht senden

8

03.05.2011, 17:26

Wäre außerdem BLU3 L3OPARD´s Lösung nicht außerdem nur eine Referenz und kein Zeiger?
Was dann ja hieße du erzeugst, bzw muss keine pointer erzeugen sondern einfach nur das Fenster wie eine "normale" Variable an eine Funktion übergeben...

Oder habe ich vor lauter Python lernen die Basics von C++ verlernt?
Errare est humanum. -Windows ist menschlich ;-)

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

9

03.05.2011, 17:47

kann man des auch mit pointernlösen
und wäre das nicht die bessere idee?

eine referenz ist ein einfach zu bedienener zeiger, mehr nicht.
zeiger als parameter haben nur den vorteil, dass man null übergeben kann wenn man diesen parameter nicht übergeben möchte. dann muss die funktion das aber auch unterstützen. tut sie das nicht(z.b. weil es keinen sinn machen würde) ist eine referenz eine bessere lösung.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

moritz31

Treue Seele

  • »moritz31« ist der Autor dieses Themas

Beiträge: 259

Wohnort: Hessen

Beruf: Student

  • Private Nachricht senden

10

03.05.2011, 17:49

ok danke für die Information.
Habe nur gefragt weil ich schon oft gehört habe das Pointer besser als Referenzen sind

Werbeanzeige