Warum es in C++ besser ist, Objekte per Zeiger zu übergeben, statt per Wert?
Hallo zusammen! Ich habe gerade angefangen, C++ nach Java zu lernen, und habe ein Problem mit Zeigern.
In Java, wenn ich `MyClass obj = new MyClass()` schreibe, arbeite ich immer mit einer Referenz auf das Objekt. Aber in C++ kann ich sowohl `MyClass obj;` als auch `MyClass* obj = new MyClass();` schreiben. Und hier bin ich verwirrt.
Angenommen, ich habe eine Funktion, die ein Objekt nimmt und etwas damit macht:
```cpp
void processData(MyClass data) {
// ändern data
data.setValue(42);
}
int main() {
MyClass myObj;
myObj.setValue(10);
processData(myObj);
// myObj.getValue() ist immer noch 10, nicht 42! Warum?
return 0;
}
```
Ich erwartete, dass sich der Wert nach dem Aufruf von `processData` ändert, aber das geschah nicht. Ich musste auf Zeiger umschreiben:
```cpp
void processData(MyClass* data) {
data->setValue(42);
}
int main() {
MyClass* myObj = new MyClass();
myObj->setValue(10);
processData(myObj);
// Jetzt ist myObj->getValue() == 42
delete myObj;
retu