Quote:
Das ist so nicht korrekt, weil dort Objekte von Klassen Referenzsemantik haben, während Structs und primitive Typen Wertesemantik haben.
Wer nicht schon einmal Zeiger gehört hat, hat zumindest schon einmal Referenz gehört, ansonsten kann er die Sprache nicht besonders gut, erst recht, wenn er den Unterschied der beiden Typklassen nicht kennt.
Das einzige, was tatsächlich wegfällt, ist Zeigerarithmetik.
|
klar aber zeiger sind ja noch viel mehr als referenzen, sachen wie z.b.
Code:
var
x: Integer;
i: PInteger;
tmp: Integer;
begin
new(i);
tmp:=0;
for x := 0 to 10 do
begin
i^:=Random(100);
inc(i);
end;
for x := 0 to 10 do
begin
tmp:=i^+tmp;
dec(i);
end;
Dispose(i);
ShowMessage(IntToStr(tmp));
end;
dinge mit denen man sich in VB nie auseinandersetzten muss.
Diese gesammte zeiger rechnung,die funktionsweise von zeigern, das wird für z.b. VB oder C# komplett irrelevant, das einzige was man wissen muss ist: Klassen muss man initialisieren, und klassen werden nicht kopiert wenn man eine wertzuweisung macht.
Wenn man das gelernt hat kann man mit VB schon sogut wie jedes programm umsetzten. und das ist alles worauf ich hinaus will, Man muss um gute ergebnisse zu erziehlen nicht so weit hinter die materie blicken wie in z.b. C++
Dass man es dennoch kann schließ ich nicht aus, doch wenn man C++ oder z.b. Delphi lernt ist Zeiger schon sehr früh ein großes kapitel, bei VB oder C# wird es zwischenzeitlich mal angestreift, und es reicht beileufig das mal durchzugehen
Quote:
Originally Posted by MrSm!th
Juristisch vielleicht nicht, aber das tut nichts zur Sache. Es geht hier nicht um Patente, es geht um Standards. Baust du einen absolut nicht standardkonformen Compiler, kickt dich die Konkurrenz einfach aus dem Geschäft. Niemand mag Non-Standardkonformität.
Außerdem ist der C++ Standard durchaus durch die ISO geregelt und wird von einem Komitee verabschiedet. Der einzige Unterschied zu Sprachen wie C# ist, dass C++ nicht proprietär ist.
|
Mir ist das schon alles bewust, und man wird wohl kaum einen seriösen nicht normkonformen compiler finden, das bsp ist auch sehr hoch gesteckt und eine unglaubliche übertreibung, doch hatte ich schonmal den fall, dass ein un der selbe source code in 2 compilern unterschiedlich funktionierte, und genau diese thematik will ich drauf aufmerksam machen, jeder Compiler ist anders, jeder hat seine eigenheiten, und d.h. ist das einzige worauf man sich verlassen kann, das, sofern es ein iso konformer compiler ist, er sich an die iso normen hält, und wenn man normkonform entwickelt, auch alles normkonform rauskommt.
sowie bei pcs z.b. der netzanschluss genormt ist gibt es immer noch unternehmen (z.b. apple) die sich nicht daran halten.
ich kann auch sagen für mich hatt c++ keine semikolone, und wenn ich einen compiler dafür benutze der das unterstützt funktioniert das auch wunderbar, ich muss mir halt bewust sein das ich dann kein iso c++ nutze
Und ja die bekannten compiler sind alle iso norm konform, aber es gibt auch kleinere, die zum teil noch auf alten normen basieren, etc.
Man muss halt drauf achten, welche normen unterstützt der compiler, wie aktuell ist er etc
Aber wenn das nicht so offensichtlich ist werde ich da einen anderen vergleich aufführen, morgen oder so versuche ich mal die stellen die nicht so klar oder eindeutig sind zu überarbeiten
(bei dem bsp source hatte en kumpel von mir bei nem case das break; vergessen, eigentlich nicht sonderlich tragisch sollte man meinen, aber es wird von der norm nicht beschrieben was passiert wenn man das break vergisst, bei visual C++ ist auch nix großes passiert, beim gcc ist die ganze rechnung komplett falsch gewesen)