Zitat von
Binärbaum:
Code:
void machWas(int* a)
{
(*a)++;
}
Ich sehe keinen Unterschied zu Delphi.
Dann werden wir mal deutlicher:
Delphi-Quellcode:
procedure machWas(var a: integer);
begin
a:= a+1;
end;
und
Code:
void machWas(int* a)
{
(*a)++;
}
sind nicht viel unterschiedlicher, aber was, wenn man (aus Schusseligkeit, oder warum auch immer) bei C die Dereferenzierung vergisst und folgendes schreibt und somit aus Versehen den Zeiger verändert und nicht den Wert des Integers, auf den a verweist:
Code:
void machWas(int* a)
{
a++;
}
Das ist theoretisch möglich und wird sogar kompiliert, nur das, was die Prozedur macht, ist in beiden Fällen komplett anders.[/quote]
Wieso machst du das nicht so:
Code:
void machWas(int& a)
{
a++;
}
Dürfte doch aufs selbe hinauslaufen? int& ist dann doch auch ein call-by-reference. Oder vertu ich mich da?