Die ...
int *a;
// ...
a = foo();
... würde nicht kompilieren, selbst wenn die Funktion als int foo();
erklärt wurde, so dass ich nehme an, es als int* foo();
erklärt wird. Dito für int* bar();
.
Geben Sie keinen rohen Zeiger wie diesen zurück. Es ist möglicherweise nicht klar, ob Anrufer delete
es oder nicht. Die gute Dokumentation kann nur teilweise dieses Problem lösen (Menschen neigen dazu, die Dokumentation von Zeit zu Zeit zu ignorieren). Warum nicht einfach die Ganzzahl Wert kopieren, oder zumindest eine Referenz auf Integer zurückgeben, falls sie wirklich geteilt werden muss?
aber sagen, dass in Ihrem speziellen Fall, foo()
und bar()
verwenden anscheinend das gleiche int „Objekt“ intern, so a
auf das gleiche Objekt zeigen weiterhin als b
auch nach bar()
verändert wurde.
Ich kann die Frage nicht verstehen. Könnte klarer sein, was du meinst, wenn du sagst "wenn ein Update kommt" und "b auch updates". –
@David Heffernan: Ich meine, wenn 'a = bar()' ausgeführt wird, wird 'b 'auch auf den neuen Wert von' a' geändert. – mahmood
Nein, das ist einfach nicht möglich. –