Void-Zeiger
-
groovemaster schrieb:
Nein, dem ist nicht so. C++ erhebt überhaupt keinen Anspruch, zu C kompatibel sein zu wollen.
nein, überhaupt nicht
dann guck doch mal in's ISO/IEC 14882, insbesondere anhang C.
-
Und was genau soll ich mir da angucken?
-
groovemaster schrieb:
Und was genau soll ich mir da angucken?
hast du es als pdf?
such nach 'compatibility', dann wirste fündig.
-
Schon klar. Nur was genau soll ich mir dort anschauen? Aus Anhang C sollte doch mehr als deutlich hervorgehen, dass es Unterschiede gibt. Und dass C++ nicht um jeden Preis Gemeinsamkeiten nur wegen der Kompatibilität beibehält. Natürlich wirft man nicht einfach alles grundlos über den Haufen. Aber wenn Änderungen für sinnvoll erachtet werden, dann werden diese auch gemacht. C spielt dabei keine Rolle. Auch im kommenden Standard wird die eine oder andere Inkompatibilität vermutlich hinzukommen, zB das Schlüsselwort auto.
-
groovemaster schrieb:
Natürlich wirft man nicht einfach alles grundlos über den Haufen.
richtig, das tun sie nicht, aber *gerade das* beschert uns hier threads wie 'ich muss den rückgabewert von malloc doch casten, weil ich sonst 'nen compile error bekomme'. wieso gibt's überhaupt malloc in c++? geh' ins c++ forum und poste einen quelltext mit 'malloc' drin - das erste was du zu lesen bekommst ist 'meckermecker, malloc benutzt man aber nicht in c++, dafür gibt's new blubberblubb...'
die ganze ISO/IEC 14882 spec. ist gespickt mit hinweisen wie 'SEE ALSO: ISO C subclause blahblah...'. das zeigt ja nun mehr als deutlich wieviel C noch in c++ steckt. ...aber wie viele C-programme kann man wohl durch C++-compiler schicken ohne mit errors und warnings überhäuft zu werden? fast keines!
ich bin wahrlich kein linux-fan, aber in einer sache stimme ich mit linus t. völlig überein: 'c++ just sucks. sorry, but it does!'btw: die sprache 'java' (ich meine nur die programmiersprache, nicht die plattform) hätte es niemals gegeben, wenn die erfinder von c++ nicht so einen obermist gebaut hätten...
@TactX: sorry, ich hab' mal wieder getrollflamed. kann verstehen wenn du das jetzt löschst oder zensierst
-
ten schrieb:
groovemaster schrieb:
Natürlich wirft man nicht einfach alles grundlos über den Haufen.
richtig, das tun sie nicht, aber *gerade das* beschert uns hier threads wie 'ich muss den rückgabewert von malloc doch casten, weil ich sonst 'nen compile error bekomme'. wieso gibt's überhaupt malloc in c++? geh' ins c++ forum und poste einen quelltext mit 'malloc' drin - das erste was du zu lesen bekommst ist 'meckermecker, malloc benutzt man aber nicht in c++, dafür gibt's new blubberblubb...'
malloc() gibt es in C++, weil die Erfinder die komplette C Standardbibliothek übernommen haben. Allerdings gehört es dort zu den Punkten, die man unter "sowas gibt's auch noch" einordnen würde (genau wie z.B. printf() oder die ganzen str...()-Funktionen) - und vielleicht hast du mal irgendwo einen guten Grund, new nicht zu verwenden (es gibt nicht viele, aber Ausnahmen bestätigen die Regel).
-
CStoll schrieb:
...und vielleicht hast du mal irgendwo einen guten Grund, new nicht zu verwenden (es gibt nicht viele, aber Ausnahmen bestätigen die Regel).
kennst du ein beispiel, bei dem 'malloc' einen vorteil gegenüber 'new' in c++ hat?
mir fällt gerade nur ein, dass man es brauchen könnte, wenn man mit 'realloc' den speicherblock später vergrössern will, aber selbst dafür bietet c++ ja andere möglichkeiten (std::vector o.ä.).
-
malloc() kannst du am besten dort verwenden, wo du wirklich auf Bit-Level mit deinen Daten zu tun hast*:
-> wenn du global den operator new überladen hast (z.B. ganz praktisch auf der Suche nach Memory-Leaks), muß der intern auf malloc() zugreifen.
-> malloc() ist mitunter etwas schneller bei der Speicheranforderung (keine Ctor-Aufrufe)
-> die Zusammenarbeit mit realloc() hast du ja schon erwähnt.* sobald du von ausgewachsenen C++ Objekten redest, kannst du es sowieso in die Tonne treten
-
ten schrieb:
btw: die sprache 'java' (ich meine nur die programmiersprache, nicht die plattform) hätte es niemals gegeben, wenn die erfinder von c++ nicht so einen obermist gebaut hätten...
<Ironie>Eine Welt ohne Garbage Collector, welch wundervolle Vorstellung. Bjarne, hättest Du C++ doch bloss vernünftig gemacht, dann wäre diese Vorstellung nun wahr</Ironie>
-
ten schrieb:
richtig, das tun sie nicht, aber *gerade das* beschert uns hier threads wie 'ich muss den rückgabewert von malloc doch casten, weil ich sonst 'nen compile error bekomme'. wieso gibt's überhaupt malloc in c++? geh' ins c++ forum und poste einen quelltext mit 'malloc' drin - das erste was du zu lesen bekommst ist 'meckermecker, malloc benutzt man aber nicht in c++, dafür gibt's new blubberblubb...'
Genau. Und das Problem hierbei ist?
ten schrieb:
die ganze ISO/IEC 14882 spec. ist gespickt mit hinweisen wie 'SEE ALSO: ISO C subclause blahblah...'. das zeigt ja nun mehr als deutlich wieviel C noch in c++ steckt. ...aber wie viele C-programme kann man wohl durch C++-compiler schicken ohne mit errors und warnings überhäuft zu werden? fast keines!
Wer C Programme durch einen C++ Compiler jagt, sollte sich ein anderes Hobby suchen. Und was du damit sagen willst, wird mir trotzdem nicht klar.
ten schrieb:
ich bin wahrlich kein linux-fan, aber in einer sache stimme ich mit linus t. völlig überein: 'c++ just sucks. sorry, but it does!'
Was ja durchaus dein Recht ist. Es bleibt trotzdem subjektiv und damit irrelevant. Meiner Meinung nach müsste C++ an einigen Stellen grundlegend geändert werden. Nur ist das natürlich nicht einfach ohne weiteres machbar, da sonst ziemlich viel Code obsolet werden würde (die gleiche Meinung habe ich übrigens auch von C). Deshalb aber C++ grundlegend in Frage zu stellen, ist falsch. Sowas zeigt eigentlich nur eines, entweder man ist ignorant oder kann mit der Komplexität nicht umgehen. Beides sind wiederum subjektive Defizite und haben nicht konkret etwas mit einer Programmiersprache zu tun.
ten schrieb:
btw: die sprache 'java' (ich meine nur die programmiersprache, nicht die plattform) hätte es niemals gegeben, wenn die erfinder von c++ nicht so einen obermist gebaut hätten...
Sehr unwahrscheinlich. Java wurde vermutlich entwickelt, weil wieder mal jemand glaubte, man könnte es besser oder die Welt braucht dieses oder jenes Feature. Sowas gibt's halt immer mal wieder. Sieht man ja auch an D. Da wollte jemand das beste aus C++ und Java vereinen. Die Sprache hat zwar auch teilweise eine bessere Usability, nur bringt sie im Grunde absolut nichts neues. Wer kommt wohl als nächstes und glaubt, er könnte D besser machen?
-
groovemaster schrieb:
ten schrieb:
richtig, das tun sie nicht, aber *gerade das* beschert uns hier threads wie 'ich muss den rückgabewert von malloc doch casten, weil ich sonst 'nen compile error bekomme'. wieso gibt's überhaupt malloc in c++? geh' ins c++ forum und poste einen quelltext mit 'malloc' drin - das erste was du zu lesen bekommst ist 'meckermecker, malloc benutzt man aber nicht in c++, dafür gibt's new blubberblubb...'
Genau. Und das Problem hierbei ist?
das gleiche problem, das dich dazu veranlasst hat, die zweite zeile in deine
signatur zu schreibengroovemaster schrieb:
Wer C Programme durch einen C++ Compiler jagt, sollte sich ein anderes Hobby suchen. Und was du damit sagen willst, wird mir trotzdem nicht klar.
guckst du ein paar postings weiter oben..
groovemaster schrieb:
ten schrieb:
ich bin wahrlich kein linux-fan, aber in einer sache stimme ich mit linus t. völlig überein: 'c++ just sucks. sorry, but it does!'
Was ja durchaus dein Recht ist. Es bleibt trotzdem subjektiv und damit irrelevant.
subjektiv ja, irrelevant vielleicht in bezug auf das fortbestehen des universums, aber nicht irrelevant für unsere unterhaltung...