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

11

06.08.2014, 20:15

Ich meine das VC das gar nicht kompilieren würde.

Warum nicht, das ist gültiges C++.

Ein using namespace funktioniert nicht.
void XY::func() {} darf man benutzen, sofern die Definition davor passiert (in diesem Fall: der Header in der cpp eingebunden ist).
"Theory is when you know something, but it doesn’t work. Practice is when something works, but you don’t know why. Programmers combine theory and practice: Nothing works and they don’t know why." - Anon

12

06.08.2014, 20:54

Warum nicht, das ist gültiges C++.

Hast recht habe es gerade mal ausprobiert, eine FreiFunktion lässt sich auch ohne den entsprechenden Namespace komilieren.

Bei Funktionen einer Klasse gehts dann aber nicht, das hatte ich irrtümlich im Kopf als ich schrieb das es VC nicht kompilieren würde.

Wieder was gelernt. Danke.
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

Schrompf

Alter Hase

Beiträge: 1 470

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

13

06.08.2014, 20:54

Das Problem hier gilt halt speziell für Operator-Überladungen. Der Operator muss im Namespace definiert werden, sonst meint er einen anderen Operator als den, der im Header deklariert wurde. Für Klassenmethoden reicht allerdings ein using namespace bla;, weil da vor jeder Funktionsdefinition ein Klasse::Funktion davorsteht und der Compiler dann anhand dieses Klassennamens und des using namespace auflösen kann, was gemeint ist.
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

Werbeanzeige