C++ Vektor durch Funktion deklarieren?
Ich versuche mich gerade an einem Programm, was aus einem Array die maximale Teilsumme und die dazugehörigen Indizes ausgibt und benötige daher ein Array als Ausgabe. Nun versuche ich innerhalb der Methode rekursiv ein Array mithilfe der selben Funktion zu deklarieren (siehe Bild) und erhalte Fehlermeldungen (siehe Bild unten)
Kann mir jemand bitte erklären, was genau das Problem ist und wie ich das am einfachsten beheben kann? Vielen Dank im Voraus! (Compiler ist Visual Studio Code)
Hier das Bild
2 Antworten
Ich kann so nur raten.(Schon da der Code nur teilweise zu sehen ist und die fehlermeldungen zudem nur auf Deutsch und damit sehr unverständlich)
Womöglich liegt es daran, dass dein Parameter const ist und deshalb die Funktion nicht als solche erkannt wird.
Oder du musst sie erst deklarieren, bevor du sie in der Implementierung aufrufst.
Oder das hängt mit lvalue vs. rvalue zusammen.
In der ersten Zeile deiner maxsum()-Funktion (direkt nach dem Kommentar), deklarierst du eine lokale Variable mit demselben Namen "maxsum".
Ab diesem Zeitpunkt ist innerhalb des Gültigkeitsbereiches deiner Funktion NUR NOCH die Variable unter diesem Namen bekannt, sodass ein späterer Aufruf als Funktion nicht mehr funktioniert.
Deshalb gebe ich dir jetzt mal drei Tipps, die du zukünftig beherzigen solltest:
- Kommentare weglassen. Anfänger neigen dazu, Kommentare für jeden Murks zu verfassen, aber die stören nur den Lesefluss, und führen evtl. sogar Bugs ein, da sie sehr oft "lügen".
- Wähle sinnvolle und gute Bezeichner, die ausdrücken, was passieren soll, oder welche Aufgabe erfüllt werden soll. ("A" ist z. B. kein guter Bezeichner, und auch "maxsum" zu ungenau.)
- Stelle die Sprache der Compilerfehlermeldungen auf Englisch! Kein Mensch nutzt nicht-englilsche Compiler und es verhindert, dass du im Internet vernünftig danach googeln kannst.
So, das war alles.
Viel Erfolg noch! :)