Frage von DAUUSER, 42

Frage zu Eclipse mit C?

Hi, hab ein problem mit dem Tool Eclipse immer wenn ich eine Klasse in C erstellen will(Rechte Maustaste neu -> Klasse) öffnet sich immer ein Fenster zur Erstellung für C++ Programme obwohl ich ein Projekt in C erstellt hab, was mache ich falsch und wie kann man eine Klasse in C richtig erstellen ?

Antwort
von JutenMorgen, 22

C ist keine Objektorientierte Sprache und lässt daher die Implementierung weiterer Klassen logischerweise nicht zu.  Du könntest dir in der Theorie eine eigene Lib erstellen aber das ist dann wieder ein ganz anderes Thema und auch nicht wirklich sinnvoll.

C++ selber ist eigentlich auch keine objektorientierte Programmiersprache, allerdings lässt sie die Einbindung von Klassen etc. zu und kann mit diesen auch umgehen.

C# ist die eigentlich OOP-Sprache aus dem Hause C. Allerdings bietet diese Sprache bei weitem nicht so viele Anwendungsbereiche wie C und C++.
"Normale" Programme kannst du hier zwar schreiben aber Dinge wie Treiber, OS oder sonstiges sind quasi nicht realisierbar. Dafür ist der Umgang mit C# weitaus einfacher und du kannst dir auch nicht so leicht ins Bein schießen. (vallgrinds etc.)

Falls du wirklich mit Klassen arbeiten möchtest solltest du also in C++ programmieren. C# ist zwar einfacher, allerdings lernst du mit C++ alles, was du für C# brauchst. Somit kannst du also quasi beide Sprachen.

Liebe Grüße, JutenMorgen!

Kommentar von ceevee ,

C++ selber ist eigentlich auch keine objektorientierte Programmiersprache

Was ist C++ denn? C++ kann Vererbung, Polymorphie, Kapselung und die Gang-Of-Four-Muster lassen sich auch alle in C++ umsetzen.

C# ist zwar einfacher, allerdings lernst du mit C++ alles, was du für C# brauchst. Somit kannst du also quasi beide Sprachen.

Wie nutzt man denn z.B. LINQ mit C++-Hausmitteln?

Kommentar von JutenMorgen ,

Zu Punkt 1:

Weiß ich alles und hab ich auch gesagt, trotzdem ist und vor allem war C++ nicht wirklich dazu gedacht als echte OO Sprache zu dienen. 

Ich habe ja auch nicht geschrieben C++ ist auf keinen Fall eine OO Sprache sondern eigentlich keine^^

C++ ist eine prozedurale Sprache mit der Möglichkeit zur Einbindung von Klassen, Methoden und Objekten. Im Grunde nur eine Erweiterung von C. Deswegen auch C++/C+1
Ja sie unterstützt ziemlich alle Funktionen einer OO Sprache aber C++ hatte ursprünglich z.B. keinen Garbage-Collector und stellt diesen, auch heute noch, nur als Option zu Verfügung. Viele Leute sehen einen Garbage Collector aber nun mal als einen nicht unerheblichen Teil einer echten, modernen OO Sprache an. Auch die Abwärtskompabilität von C++ zu einfachen C-Befehlen und prozeduraler Programmierung ist um es gelinde auszudrücken untypisch für OO Sprachen. Die Kapselung, welche du angesprochen hast ist in C++ ebenfalls nicht so umfangreich bzw. sicher genug für eine echte OO Sprache. So kann während der Laufzeit in einem C++-Programm der Speicher von Objekten durch andere Objekte sehr leicht manipuliert werden. Bei einer echten Kapselung darf das nicht der Fall sein...

Ich würde nicht widersprechen, wenn man sich darauf einigen würde, dass C++ eine OO Sprache ist, aber das ist halt momentan (bzw. schon lange) eher ein umstrittenes Thema statt Fakt, was man übrigens auch auf  endlos vielen Seiten nachlesen kann...

Zu Punkt 2:

Du solltest langsamer lesen. Ich hab nicht behauptet, dass man LINQ mit C++ aufrufen kann (Ich weiss gar nicht wie du auf das Beispiel kommst!?), ich hab gesagt, wenn man C/C++ versteht, versteht man auch C#, da C# sowie auch Java auf diesen Sprachen basieren. Für C++ gibt es zudem zahlreiche Alternativen zu LINQ. Selbst offizielle von Microsoft selber.
Wie gesagt ich hab nicht ganz verstanden was das Argument sollte...

Aber danke für deinen Downvote^^

Liebe Grüße, JutenMorgen!

Antwort
von ceevee, 27

und wie kann man eine Klasse in C richtig erstellen ?

Überhaupt nicht. C ist (im Gegensatz zu C++) nicht objektorientiert und kennt keine Klassen.

Kommentar von DAUUSER ,

Ok, aber wie beginne ich jetzt richtig ? Damit meine ich wo kann ich meinen Code Code reinschreiben ?

Kommentar von ceevee ,

Klassischerweise schreibst du deinen Code ins Editorfenster. Üblicherweise beginnst du mit einer Main-Methode. 

Und am besten suchst du dir ein C-Buch oder Tutorial, mit dem du lernst, wie man programmiert bzw. was du ins Editor-Fenster reinschreiben musst. Wenn du noch gar nicht programmieren kannst, dann ist C eine schlechte Wahl als Einstiegssprache.

Keine passende Antwort gefunden?

Fragen Sie die Community