Hallo
Kennt ihr nützliche Artikel zu C und objektorientierter Programmierung (wie in der Glib),
also in Hinsicht auf Implementierung/Techniken?
Ebenso auch über C++ und Umsetzung in C-Code?
mfg TLF
Hallo
Kennt ihr nützliche Artikel zu C und objektorientierter Programmierung (wie in der Glib),
also in Hinsicht auf Implementierung/Techniken?
Ebenso auch über C++ und Umsetzung in C-Code?
mfg TLF
Hallo
C ist keine objektorientierte Sprache. Um objektorientiert programmieren zu können must du C++ oder ev. Objective C, das heisst, den entsprecheden Compiler verwenden.
Hier ein wirklich nützlicher Artikel zu C:
http://pronix.linuxdelta.de/C/standard_C/index.shtml
Hier gleich mehrere Artikel zu C++:
http://www.onlinetutorials.de/cpp-index.htm
Und zum Schluss noch die C/C++ Reference:
http://www.cppreference.com/
Gruss, Olli
C ist keine objektorientierte Sprache. Um objektorientiert
programmieren zu können must du C++ oder ev. Objective C, das
heisst, den entsprecheden Compiler verwenden.
Dass C keine objektorientierte Sprache ist, heißt nicht, dass man damit nicht objektorientiert programmieren könnte. Es ist nur etwas mühsamer, da man ein paar Dinge selber basteln muss, die von objektorientierten Sprachen schon zur Verfügung gestellt werden.
Google findet dazu z.B.:
http://ootips.org/oop-in-c.html
http://ldeniau.home.cern.ch/ldeniau/html/oopc/oopc.html
http://www.accu.org/acornsig/public/articles/oop_c.html
http://www.planetpdf.com/codecuts/pdfs/ooc.pdf
Viele Grüße, Daniel
Dass C keine objektorientierte Sprache ist, heißt nicht, dass
man damit nicht objektorientiert programmieren könnte. Es ist
nur etwas mühsamer, da man ein paar Dinge selber basteln muss,
die von objektorientierten Sprachen schon zur Verfügung
gestellt werden.
Sachen gibts … da habe ich auch was neues gelernt.
Ich habe mir die Links mal angeschaut. Ich kann begreifen, dass man C+±Code schreibt und mit einem cfront Übersetzer C-Code daraus generiert. Auch kann ich mir vorstellen ein (z.B.) UML-Class-Diagram zu erstellen, welches dann C-Code generiert.
Aber das Ganze selber zu basteln? Ich weiss nicht. Da mus Aufwand und Ertrag aber mordsmässig stimmen Ok, zu Studienzwecken, wieso nicht.
Gruss, Olli
Hallo TheLordFerada
Kennt ihr nützliche Artikel zu C und objektorientierter
Programmierung (wie in der Glib),
also in Hinsicht auf Implementierung/Techniken?
Ebenso auch über C++ und Umsetzung in C-Code?
Genauso wie es für viele (kleine) Programmieraufgaben
oft gar nicht so sinnvoll ist, „Objektorientiert“ vorzu-
gehen, so unsinnig ist es in den meisten Fällen,
C zu verwenden, wenn ein objektorientierter Ansatz
gefragt ist.
Ich kenne sehr schöne und übersichtliche
„Prozedural-Modulare“ Programme, die in
reinem C geschrieben sind.
Einige „OO-Konzepte“ lassen sich leicht
in C „übernehmen“. Das erste ist natürlich
die Kapselung der Daten in structs
(allerdings ohne Zugruffschutz).
Das entspricht dann der ‚has a‘-Beziehung
von Eigenschaften zum Objekt.
Weiterhin lassen sich in diese Structs „Methoden“
(Funktionszeiger) integrieren, es gibt
natürlich keinen „Automatismus“, der diesen Funktionen
eine Referenz auf das eigene Objekt mitgibt.
Beispiel:
#include
typedef struct meine\_klasse {
// Daten
int preis;
int anzahl;
// Funktionen
int (\*add\_preis)(struct Klasse\*, int value);
int (\*add\_anzahl)(struct Klasse\*, int value);
} KLASSE;
int KLASSE\_add\_preis(KLASSE\* K, int val) { K-\>preis += val; return K-\>preis; }
int KLASSE\_add\_anzahl(KLASSE\* K, int val) { K-\>anzahl += val; return K-\>anzahl; }
void KLASSE\_INIT(KLASSE\* K)
{
// Daten initialisieren
K-\>preis = 0;
K-\>anzahl = 0;
// Methoden initialisieren
K-\>add\_preis = KLASSE\_add\_preis;
K-\>add\_anzahl = KLASSE\_add\_anzahl;
}
int main(int argc, char\*argv[])
{
KLASSE k;
KLASSE\_INIT(&k); // "Konstruktor" aufrufen
k.anzahl = 4;
k.add\_anzahl(&k, 10);
printf("Anzahl=%i\n", k.anzahl); // -\> 14
return 0;
}
Grüße
CMБ
Hallo Olli,
Dass C keine objektorientierte Sprache ist, heißt nicht, dass
man damit nicht objektorientiert programmieren könnte. Es ist
nur etwas mühsamer, da man ein paar Dinge selber basteln muss,
die von objektorientierten Sprachen schon zur Verfügung
gestellt werden.Sachen gibts … da habe ich auch was neues gelernt.
Ich habe mir die Links mal angeschaut. Ich kann begreifen,
dass man C+±Code schreibt und mit einem cfront Übersetzer
C-Code daraus generiert.
Das war die erste Stufe von C++.
Bei C war früher alles als einzelne Module gestaltet.
Da war der Preprozessor. Danach wurde von C in Asswembler übersetzt und dann mit dem Assembler ins Ojbectformat …
Da war es nur logisch für C++ ein Modul zu schreiben, welches zuerst in C übersetzt.
Auch kann ich mir vorstellen ein
(z.B.) UML-Class-Diagram zu erstellen, welches dann C-Code
generiert.Aber das Ganze selber zu basteln? Ich weiss nicht. Da
mus Aufwand und Ertrag aber mordsmässig stimmen Ok, zu
Studienzwecken, wieso nicht.
Gute Programmierer haben früher schon in Assembler Objektorientiert programmiert.
Man hat sich einfach ein Modul mit den Daten und dazugehörigen Funktionen erstellt und dann NICHT direkt an den Daten rumgefummelt.
Das ganze hat weniger mit Aufwand als mit Disziplin zu tun !!!
Auch strukturierte programmierung geht mit Assembler.
MfG Peter(TOO)
Google findet dazu z.B.:
http://ootips.org/oop-in-c.html
http://ldeniau.home.cern.ch/ldeniau/html/oopc/oopc.html
http://www.accu.org/acornsig/public/articles/oop_c.html
http://www.planetpdf.com/codecuts/pdfs/ooc.pdf
mit welchen stichwörtern hast du gesucht (die ergebnisse unterscheiden sich offensichtlich doch ziemlich stark)?
mfg TLF
Tja,
danke für die Antworten
zur Sinnhaftigkeit:
Ich will das auch nur zu „Studienzwecken“ mal ausprobieren / durchlesen und bei größeren Projekten mit größter Wahrscheinlichkeit nicht diesen Weg gehen, aber finde die Übertragung der in z.B. C++ verwendeten Prinzipien auf C sehr interessant … deswegen *g*
Außerdem auch in Hinsicht auf das Verständnis von Systemen die auf C und OOP aufbauen (speziell Gtk), wo ich wenig Lust habe, gtkmm zu verwenden, wenn ich (was schon vorgekommen ist) eine für ein Projekt nützliche Komponente hinzufügen will.
(Ich persönlich finde diese Low-Level-Sachen einfach faszinierend )
mfg TLF
mit welchen stichwörtern hast du gesucht (die ergebnisse
unterscheiden sich offensichtlich doch ziemlich stark)?
Ich habe einfach nach „object oriented programming in c“ (mit und ohne Anführungszeichen) gesucht.
Viele Grüße, Daniel