Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

FreeBASIC 0.24.0 heute erschienen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 20.08.2012, 16:26    Titel: FreeBASIC 0.24.0 heute erschienen Antworten mit Zitat

Das neue Release FreeBASIC 0.24.0 ist heute veröffentlicht worden! lächeln Mehr Infos...

Die neuen Downloadpakete sind bereits im FreeBASIC-Portal zu haben: http://www.freebasic-portal.de/downloads/aktuelle-compiler/
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
darkinsanity
aka sts


Anmeldungsdatum: 01.11.2006
Beiträge: 456

BeitragVerfasst am: 20.08.2012, 16:49    Titel: Antworten mit Zitat

Yeah, Vererbung zwinkern
_________________
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst -- Steve Wozniak
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 20.08.2012, 18:27    Titel: Antworten mit Zitat

Ganz gut, dass etwas Leben in die Bude kommt, aber fast alles was neu ist, ist ein wenig merkwürdig implementiert und erinnert von der Umsetzung her an eine Mischung aus C, PHP und Java - man hätte dazulernen können. Schlagwörter, gerade nicht viel Zeit: "foo extends object", "threadcall funktionsname(parameter)", "base", ...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 21.08.2012, 08:08    Titel: Antworten mit Zitat

EXTENDS OBJECT

Hier wollte ich gern mal nachhaken was es wirklich effektiv bringt bzw welche möglichkeiten einem sich damit bieten?

Bisher erkenne ich daraus eigentlich nur eine ersparnis von schreibarbeit, wenn ich nur als kurzes Beispiel ein solches 'konstrukt' nehme;

Code:

Type vector2 EXTENDS OBJECT
   x as integer
   y as integer
   'diverse methoden
End Type

Type vector3 EXTENDS vector2
   z as integer
   'diverse methoden
End Type

Type vector4 EXTENDS vector3
   w as integer
   '...
End Type


Hier könnte ich aber auch wie gehabt die drei types schreiben, und würden ebenfalls ganz genauso funktionieren und erkenne daher wie gesagt
nur den Vorteil das ich mir schreibarbeit erspare (wobei das mit copy&paste sooo viel dann nun auch nicht wäre...)

Eigentlich müsste es prinzipiell auch möglich sein sowas wie UDT-UDT's damit zu kreieren?
Also quasi ein klassen-baustein-prinzip um eine klasse/object aus mehreren (erst später bekannten) object-parts zu erstellen

so zB wie;
Code:

'pseudocode

type spielobject extends object
type position extends spielobject
type groesse extends spielobject
...
...
'brauche nun eine UDT-Klasse Spielobjekt mit folgenden 'erweiterungen' position ect...


ist das möglich oder ist das ganze wirklich nur zum sparen von arbeit gedacht?
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 21.08.2012, 09:14    Titel: Antworten mit Zitat

Ich vermute, es is zum Code-spaaren.

stell dir vor, du schreibst ein konstrukt, das viele UDTs benötigt (GUI). viele elemente sind in den meisten UDTs identisch (pos, gröse, farbe, usw.) ... aber einige eigenschaften sind objekt-spezifisch (dropbox, liste, ...) ... da kann man dann viel code-spaaren, wenn man ein allgemeines udt baut, und dann die erweiterungen "extendet" zwinkern


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4703
Wohnort: ~/

BeitragVerfasst am: 21.08.2012, 13:14    Titel: Antworten mit Zitat

Wenn du dann im (Groß-)Eltern-UDT eine Erweiterung oder ein Fix vornimmst, wirkt sich diese(r) auch gleich auf alle (Enkel-)Kinder aus, sofern sie diese Bereiche nicht selbst überschreiben. Es geht also auch um Wartbarkeit.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 21.08.2012, 13:17    Titel: Antworten mit Zitat

Eternal_pain hat Folgendes geschrieben:
EXTENDS OBJECT

Hier wollte ich gern mal nachhaken was es wirklich effektiv bringt bzw welche möglichkeiten einem sich damit bieten?


Und von "Objektorientierung" habt iher noch beide nie gehört?
https://de.wikipedia.org/wiki/Vererbung_%28Programmierung%29

Code zu sparen ist ein netter Nebeneffekt, aber ein besonders wichtiger Aspekt der Vererbeung ist eben auch, dass jedes speziellere Objekt (z.B. Auto) an den Stellen verwendet werden kann, wo ein allgemeineres Objekt (Fortbewegungsmittel) erwartet wird. Macht den Code übersichtlicher und leichter zu verstehen.

Edit: nemored war schneller.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 21.08.2012, 13:52    Titel: Antworten mit Zitat

Objektorientierung oder OOP war mir ansich schon ein begriff aber eher Theorie als Praxis zwinkern

Ich erkenne schon die Vroteile daran, allerdings dachte ich das noch mehr dahinter steckt...

zugegeben erspart es einem eine menge arbeit... man spart Code, es ist übersichtlicher, änderungen müssen (meist) nur in einer Klasse getätigt werden...

Allerdings dachte da wär noch mehr, also irgendwas das ohne ganz und gar nicht möglich wäre...
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 21.08.2012, 14:14    Titel: Antworten mit Zitat

Alles was du mit OOP programmieren kannst, kannst du auch irgendwie ohne programmieren, aber es ist halt sehr schmerzhaft, denn du musst die OOP-Mechanismen dann selbst implementieren. In diesem Fall wäre das eben nicht nur das Duplizieren von Membervariablen und Funktionen, sondern auch das Kopieren von Funktionen, die so ein Objekt als Input bekommen...

Beispiel:
Code:

Sub Vorwaerts(gefaehrt as Fortbewegungsmittel)
  gefaehrt.x += 10
  Print "Das Fortbewegungsmittel " & gefaehrt.name & " befindet sich nun an Position " & gefaehrt.getCoord()
End Sub


Natürlich könnte man die Funktion 10 mal implementieren für alle Fortbewegunsmittel, oder man castet alle Fortbewegungsmittel auf eine "Basisklasse" (ziemlich dreckig)... Aber das ist alles wesentlich weniger elegant und zudem fehleranfälliger.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 21.08.2012, 14:40    Titel: Antworten mit Zitat

Interessanter wird mein Beispiel auch noch, wenn man statt "gefaehrt.x += 10" eine Funktion gefaehrt.movePos(10) verwenden würde, denn dann könnte man jeweils noch die interne Funktionalität dieser Funktion je nach Klasse überladen (Stichwort Polymorphie)... Und um sowas ohne OOP zu realisieren, müsstest du schon selbst eine Art Dispatcher schreiben, und das wird dann maximal hässlichst. Zunge rausstrecken
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
St_W



Anmeldungsdatum: 22.07.2007
Beiträge: 956
Wohnort: Austria

BeitragVerfasst am: 21.08.2012, 19:00    Titel: Antworten mit Zitat

Eternal_pain hat Folgendes geschrieben:
Ich erkenne schon die Vorteile daran, allerdings dachte ich das noch mehr dahinter steckt...
Man muss hinzufügen, dass der FBC inzwischen zwar tum Teil Konzepte der objektorientierten Programmierung unterstützt, aber darüber hinaus noch viele weitere der OOP angerechnete Mechanismen existieren, die der FBC (noch?) nicht beherrscht. Virtuelle Methoden oder Abstrakte Klassen wären hierzu meines Wissens nach - und ich habe mich noch nicht mit den hinzugekommenen Funktionen auseinandergesetzt - beispielhaft zu erwähnen.
_________________
Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz