C++ Error: Der Ausdruck muss ein änderbarer L-Value sein

2 Antworten

SetH(H) ist ein Funktionsaufruf. Zuweisen kannst du nur an eine Variable oder den Setter einer Eigenschaft. Ich vermute, du meintest es so:

H = a[0] + a[1]*neu[i].GetX() + a[2]*neu[i].GetY();
neu[i].SetH(H);

Es läuft jetzt! Aber könnt ihr mir sagen ob das eine gute Lösung von mir ist?

const int MAX=100; double H[MAX];

for (int i=0; i<Anzahl; i++)
{
    H[i] = a[0] + a[1]*neu[i].GetX() + a[2]*neu[i].GetY();
    neu[i].SetH(H[i]);
}

Danke!

WhiteGandalf  08.06.2013, 11:35

Man kann eine Aufgabe immer deutlich komplizierter lösen als notwendig.

Wenn Du irgendwann mal anfängst, richtige (komplexe) Programme zu schreiben, wirst Du entweder rechtzeitig lernen, die Finger davon zu lassen, oder elendig untergehen. Aber da Du erst beim Einlernen bist, mußt Du Dir deshalb noch keinen Strick nehmen.

Die temporäre (!) Zwischen- (!) variable "H", die Du selbst ursprünglich erfunden hattest, und deren korrekte Benutzung olle halbsowichtig Dir richtig gezeigt hatte, hast Du hier in ein Array von temporären Variablen verwandelt, von denen jeder Platz nur ein einziges Mal als Wegwerfprodukt ("TEMP"-orär, "ZWISCHEN"-variable - gelle?!) verwendet wird. Das ist pure Verschwendung: Sowohl vom Notationsaufwand als auch vom Speicheraufwand als auch vom Aufwand der CPU-Zyklen her.

=================

Um nochmal konstruktiv zu werden: Stelle Dir TEMP-oräre Werte wie einen Arbeitstisch in der Küche vor, wenn Du ein großes Menü aufsetzen willst!

Du wirst garantiert nicht deswegen, weil Du 5 verschiedene Speisen zubereiten willst, 5 verschiedene Arbeitstische nebeneinander in Deine Küche stellen. Es sei denn, Du wärest ein Koch in einem Restaurant, wo Du gleichzeitig zig verschiedene Gäste zu bedienen hättest und dazu mit 5 verschiedenen Arbeitskräften in der Küche arbeiten würdest. Aber DIESES Thema (Multitasking, Multiprocessing) laß Dir für später - NACHDEM Du verstanden hast, daß Du als ZWISCHEN-Ablage keine 5 Tische in einer privaten Küche benötigst - auch wenn Du im Laufe Deines Lebens abertausende verschiedene Gerichte auf dieser EINEN Zwischenablage zubereiten wirst.

0
WhiteGandalf  08.06.2013, 11:35

Man kann eine Aufgabe immer deutlich komplizierter lösen als notwendig.

Wenn Du irgendwann mal anfängst, richtige (komplexe) Programme zu schreiben, wirst Du entweder rechtzeitig lernen, die Finger davon zu lassen, oder elendig untergehen. Aber da Du erst beim Einlernen bist, mußt Du Dir deshalb noch keinen Strick nehmen.

Die temporäre (!) Zwischen- (!) variable "H", die Du selbst ursprünglich erfunden hattest, und deren korrekte Benutzung olle halbsowichtig Dir richtig gezeigt hatte, hast Du hier in ein Array von temporären Variablen verwandelt, von denen jeder Platz nur ein einziges Mal als Wegwerfprodukt ("TEMP"-orär, "ZWISCHEN"-variable - gelle?!) verwendet wird. Das ist pure Verschwendung: Sowohl vom Notationsaufwand als auch vom Speicheraufwand als auch vom Aufwand der CPU-Zyklen her.

=================

Um nochmal konstruktiv zu werden: Stelle Dir TEMP-oräre Werte wie einen Arbeitstisch in der Küche vor, wenn Du ein großes Menü aufsetzen willst!

Du wirst garantiert nicht deswegen, weil Du 5 verschiedene Speisen zubereiten willst, 5 verschiedene Arbeitstische nebeneinander in Deine Küche stellen. Es sei denn, Du wärest ein Koch in einem Restaurant, wo Du gleichzeitig zig verschiedene Gäste zu bedienen hättest und dazu mit 5 verschiedenen Arbeitskräften in der Küche arbeiten würdest. Aber DIESES Thema (Multitasking, Multiprocessing) laß Dir für später - NACHDEM Du verstanden hast, daß Du als ZWISCHEN-Ablage keine 5 Tische in einer privaten Küche benötigst - auch wenn Du im Laufe Deines Lebens abertausende verschiedene Gerichte auf dieser EINEN Zwischenablage zubereiten wirst.

0
WhiteGandalf  08.06.2013, 11:39
@WhiteGandalf

Hmmm... Doppelpost nach Gateway-Timeput des GuteFrage-Servers. Das war nicht meine Schuld, OK?

0