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

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

21

16.01.2014, 09:04

Wie wäre es mit "Attributen" für die Member einer Klasse, mit denen man (u.a.) festlegen kann, ob diese standardmäßig flach oder tief kopiert werden?

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

22

16.01.2014, 09:31

Wenn es auch ein Attribut gibt, welches das kopieren verbietet, stimme ich zu ;)

23

16.01.2014, 09:32

Wenn es gut läuft und eine plattformunabhängige sprache wird, da es ja auf C++ basiert, werde ich vielleicht Zukünftlich auf DEINER Programmiersprache Spiele entwickeln :D
Und wenn du damit fertig bist, gebe ich dir schon mal nächste Aufgabe. Mach mir eine bessere Alternative zu OpenGL. Die Einfachheit von DirectX und die Plattformunabhängigkeit von OpenGL, danke :D

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

24

16.01.2014, 10:32

Das mit den Attributen zur copy Funktion ist eine Gute Idee.
Natürlich muss ich das auch noch irgend wo definieren, was copy genau tut.
Wenn bei Baumstrukturen eine große Menge an Code generiert wird, sollte man ja noch wissen, was der Compiler eigentlich tut ^^.

Attribute für variablen habe ich ohnehin schon eingeführt.
Momentan aber erst mal nur Dinge wie "#rw", damit automatisch setter und getter erzeugt werden.
Das könnte man dann natürlich auch erweitern auf die Eigenschaft, dass dieses Objekt nicht kopiert werden darf.

Zitat

Die Einfachheit von DirectX und die Plattformunabhängigkeit von OpenGL
Siehe SoftPixel Engine :P

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

25

16.01.2014, 11:25

Wo du grad Setter und Getter sagst. Guck doch ob du eine Art Propertysystem wie bei C# entwickelst.
„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.“

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

26

16.01.2014, 11:28

Das definitiv! Eins der größten Schwächen von C++ meiner Meinung nach. Sind sogar ziemlich einfach zu generieren. Wenn wir schon dabei sind wäre ein Lock-Mechanismus wie in C# sehr cool.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

27

16.01.2014, 18:54

Diskussion über Getter und Setter abgetrennt nach hier: Getter/Setter gut oder schlecht?

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

28

16.01.2014, 19:24

In den verschobenen Beiträgen waren noch 2 Beiträge von mir, die für das Thema hier (die Programmiersprache) von Relevanz sein dürften (die aber möglicherweise aufgrund der entstandenen Diskussion ein wenig untergingen...)

Auch angucken könnte man sich in dem Zusammenhang [Properties] die Herangehensweise von Python. Und wenn man schon einen Blick auf Python wirft, kann man sich auch die Magic Member ansehen, über welche das Standardverhalten (bspw. Operatorüberladung) beeinflusst wird.
Ich finde diese Lösungen in Python durchaus elegant (es entstehen nicht unmengen von Schlüsselwörter bzw. die vorhandenen werden nicht je nach Kontext anders interpretiert), allerdings auch im Kontext von Python. Ich will also nicht sagen, dass du dich daran orientieren sollst, allerdings kann es nicht schaden, andere herangehensweisen gesehen zu haben.

Zu deiner Sprache:
In einem anderen Thema wurde mal Rust angesprochen, da es dort nicht möglich ist, auf NullPointer-/NullReferenceExceptions/... zu stoßen, da es null in dieser Sprache nicht gibt. Ich will dir nicht vorschlagen, dieses Konzept genau so in deine Sprache zu übernehmen, allerdings wäre es evtl. ganz interessant, wenn standardmäßig einer Variable keine null-Werte zugewiesen werden könnne (und kein null durch Funktionen/Methoden zurückgegeben werden können), man aber explizit angeben kann, dass eine Variable "nullable" ist (bzw. dass eine Funktion bzw. eine Methode potenziell null zurückgeben kann). Im .NET Framework gibt es Nullable<T>, womit null an Stelle von Wertetypen möglich wird. (Die Syntax ist dabei bspw. private int? myMember;.)
Ich finde ein solches Konzept durchaus überlegenswert, nur kommt es auf das verwendete Typsystem an, ob es sich sinnvoll umsetzen lässt und dann auch brauchbar ist.

Bezüglich der Attribute kannst du dich evtl. auch an den Annotationen in anderen Klassen orientieren. In Java notiert man vor einer Klasse/einem Member mit einem @ vorangestellt (@Annotation) und in C# von eckigen Klammern eingeschlossen ([Annitation]). In Java und C# werden für solche im Hintergrund Klassen verwendet, allerdings kann das eigene System in der Hinsicht evtl. auch ein wenig anders ausgelegt werden. (Wenn man sich die Propertys in Python ansieht, sieht man auch 2 Möglichkeiten, wobei bei einer auch eine Java-artige Syntax verwendet wird, aber dennoch im Hintergrund wohl keine Klassen vorhanden sein müssen.)
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

29

16.01.2014, 21:47

Das mit den Attributen zur copy Funktion ist eine Gute Idee.
Natürlich muss ich das auch noch irgend wo definieren, was copy genau tut.
Wenn bei Baumstrukturen eine große Menge an Code generiert wird, sollte man ja noch wissen, was der Compiler eigentlich tut ^^.

Attribute für variablen habe ich ohnehin schon eingeführt.
Momentan aber erst mal nur Dinge wie "#rw", damit automatisch setter und getter erzeugt werden.
Das könnte man dann natürlich auch erweitern auf die Eigenschaft, dass dieses Objekt nicht kopiert werden darf.

Zitat

Die Einfachheit von DirectX und die Plattformunabhängigkeit von OpenGL
Siehe SoftPixel Engine :P

Wow, sowas gibt es? Hätte ich das nur früher gewusst ;)

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

30

25.01.2014, 20:05

Parameter Denomination, wie findet ihr das?
Und wie heißt das eigentlich richtig? Diese Bezeichnung habe ich mir eben mal schnell ausgedacht.

Werbeanzeige