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

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

11

20.08.2014, 21:04

Pass aber auf jeden Fall auf, dass die Signatur eindeutig ist. Das kann sonst zu sehr interessanten Ergebnissen führen...

Nur zur Info: Das ist undefiniertes Verhalten. inline erlaubt zwar die mehrfache Definition einer Funktion, alle Definitionen müssen aber übereinstimmen... ;)

Schorsch

Supermoderator

  • »Schorsch« ist der Autor dieses Themas

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

12

21.08.2014, 11:01

Include Guards mit define hatte ich schon getestet. Selbes Ergebnis wie pragma once. Was ja eigentlich auch durchaus Sinn ergibt. Inline klappt super was ich ja auch schon geschrieben hatte. In dem eigentlichen Projekt handelt es sich bei den freistehenden Methoden bis jetzt um noch nicht fertig durchdachte und strukturierte Konstrukte. Das ganze soll im nächsten Schritt aufgeräumt werden. Mir ging es hier mehr darum wie man das Problem direkt lösen kann, ohne groß am Design vom Code zu schrauben. Ich muss mich aber auch erst wieder mehr in C++ rein denken.
Euch vielen Dank für die guten Antworten. Hat mich ein gutes Stück weiter gebracht. Arbeiten tue ich übrigens mit Visual Studio Pro, bzw GCC falls unter Linux unterwegs und soweit ich mich zurück erinnere funktioniert pragma once zumindest unter Visual Studio schon seit einigen Versionen problemlos. Wobei meine Erfahrung in dem Bereich wohl aktuell nicht viel Wert ist;)
„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.“

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

13

21.08.2014, 11:08

#pragma once war ursprünglich eine Microsoft-spezifische Sache, wird aber schon seit Ewigkeiten von jedem mir bekannten Compiler unterstützt... ;)

Schorsch

Supermoderator

  • »Schorsch« ist der Autor dieses Themas

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

14

21.08.2014, 11:17

Das war auf ExCluSiv3s Aussage bezogen.
nichts desto trotz bleiben die pragmas (selbst mit VS 2013) mit Vorsicht zu genießen
„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.“

15

21.08.2014, 11:41

Ne andere Frage...
Warum vererbst du die Funktion nicht einfach?

Grüssle

Schorsch

Supermoderator

  • »Schorsch« ist der Autor dieses Themas

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

16

21.08.2014, 14:18

Es handelt sich bei dem Code einfach nur um ein Beispiel. Mein Problem im eigentlichen Projekt war eine freie Methode welche in einer Header-Datei definiert und implementiert ist. Diese Methode soll nun aus zwei unterschiedlichen Cpp-Dateien aufgerufen werden. Natürlich könnte ich mir eine Basisklasse bauen und meine Aufrufer davon ableiten, das wäre aber mehr als hässliches Design. Vererbung sollte man möglichst dann einsetzen wenn es Sinn ergibt. Zumindest meiner Meinung nach wäre es ein sehr unschöner Hack.
„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.“

17

21.08.2014, 15:37

Du kanbst diese freie funktion doch auch einfach im header deklarieren und im cpp definieren :hmm:

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

18

21.08.2014, 15:58

Genau das wollte er ja nicht. Steht übrigens schon auf Seite 1.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

19

21.08.2014, 18:42

Genau das wollte er ja nicht. Steht übrigens schon auf Seite 1.

Da frage ich mich doch aber warum?
Ist es reine Faulheit, um nicht zu jeder .h eine .cpp erstellen zu müssen, oder nutzt du templates?
Letztendlich erhöht das doch nur die compile Zeit und bringt sonst keinerlei Nutzen mit sich, oder irre ich mich?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

20

21.08.2014, 20:50

Klingt nach Faulheit, ja. Andererseits ist C++ in der Hinsicht auch nicht gerade komfortabel, wenn man es mit anderen Sprachen vergleicht.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige