gegenseitiges includieren
-
Haha^^ Doch
Es war einmal ein Programmierer, der hatte einen Auftrag. Da er faul war, wie alle Informatiker und Programmierer, dachte er sich in seinem Kopf: "Hach, da erleichtere wer die Arbeit mir in meinem Topf!" Zu jener Zeit war das Geschäftsmodell des Outsourcing sehr modern, so kam es, dass unser Programmierer in China angerufen und sich mehrere externe Programmierer angeheuert hat. Seine Aufgaben delegierte er von nun an brav weiter nach China und brauchte nie mehr einen Finger krumm machen.

Es wird weiterhin erzählt, dass dieser Programmierer so erfolgreich mit seinem Tun war, dass er sich noch weitere Jobs besorgte und diese auch nach China delegierte. Sein monatliches Einkommen wuchs und wuchs.
Der Böse Kaiser (sein Chef) bekam nur irgendwann mit, dass extrem viele Zugriffe aus China auf das Firmen VPN vollzogen wurden, bis er durch Nachforschungen bei unserem Freund landete. Aber anstatt ihn zu einem Abteilungsleiter oder einer anderen Führungsposition zu befördern, hat er ihn gefeuert.Und die Moral von der G'schicht: Lern richtig programmieren, dann kriegste auch kein Arschtritt!
Nachtrag: Wie wir alle wissen beginnen Märchen mit "Es war einmal...". Echtes Seemannsgarn fängt mit "Ey, jetzt mal ohne Scheiss..." an.
-
daddy_felix schrieb:
WhileTrueDo schrieb:
meine frage ist aber wie ich dass beides includieren kan nicht wass ich für fehler mache
das haben wir dir ja nun oft genug erklärt. Wenn du Parameterübergaben nicht als call-by-value machst, sondern als call-by-reference, benötigst du das include nicht, sondern kannst auf forward declarations zurückgreifen.
daddy_felix schrieb:
Dann versuch doch als erstes, ein Objekt als "call-by-reference" an eine Funktion zu übergeben.
Ähh....
Es ist zwar nicht unbedingt bester Stil, komplexe Objekttypen als Kopie zu übergeben, aber für eine Funktionsdeklaration reicht auch ein "incomplete type" vollkommen aus. Ich habe den Eindruck, dass ist dir selber nicht klar:
class foo; class bar { void x(foo f); // Absolut ok }; void x(foo); // Natürlich auch void y(foo) { } // Geht nicht!Falls ich dir gerade unrecht tue und du das wusstest: Entschuldigung. Bei solch einem langen Thread ist schwer nachzuvollziehen, worauf alle Beteiligten überhaupt hinaus wollen.
-
Skym0sh0 schrieb:
Echtes Seemannsgarn fängt mit "Ey, jetzt mal ohne Scheiss..." an.
Ne mit "Arrr, damals als ich noch so alt war wie ..."
Was du meinst sind Topstories von "Gangstern". HAHA
-
SeppJ schrieb:
Es ist zwar nicht unbedingt bester Stil, komplexe Objekttypen als Kopie zu übergeben, aber für eine Funktionsdeklaration reicht auch ein "incomplete type" vollkommen aus. Ich habe den Eindruck, dass ist dir selber nicht klar:
*ups* stimmt ja, hast recht.
Trotzdem sollte WhileTrueDo die Gelegenheit nutzen, und sich damit beschäftigen. Ansonsten lautet der nächste Threadtitel "Geänderte Parameter werden nicht übernommen".
-
in meinem fall dann so?
class Map { public: int Height; } void ChangeMember(Map Map1) // dies ist "call-by-value". Bitte ersetzen durch "call-by-reference" { Map1.Height = 20; } int main() { Map Map1: Map1.Height = 10; cout << "Map1.Height: " << Map1.Height << "\n"; ChangeMember(Height); cout << "Map1.Height: " << Map1.Height << "\n"; }
-
Nein. Darum gings ihm nicht. Du hast jetzt nur 2-3 Namen geändert.
Google mal call-by-value und call-by-reference.
Und ich geb dirn nen Zehner wenn google nix ausspuckt.
-
Keine Ergebnisse für "call-by-value und call-by-reference und bitte bitte google spucke nix aus" gefunden
-
Tip:
Bau in dein Code ein&ein.
-
Äh, moment, jetzt tut ihr WhileTrueDo Unrecht.
Nach meiner Ansicht, hat er ein Beispiel gepostet, wie das in seinem Fall aussehen würde ohne das CallbyReference zu implementieren.
-
dankeschön
-
WhileTrueDo schrieb:
in meinem fall dann so?
class Map { public: int Height; } void ChangeMember(Map Map1) // dies ist "call-by-value". Bitte ersetzen durch "call-by-reference" { Map1.Height = 20; } int main() { Map Map1: Map1.Height = 10; cout << "Map1.Height: " << Map1.Height << "\n"; ChangeMember(Height); cout << "Map1.Height: " << Map1.Height << "\n"; }Von mir aus auch mit diesen Bezeichnungen. Mir geht es eigentlich nur darum, dass du "call-by-reference" verstehst. Aber wenn du das gerne mit einer Klasse names "Map" üben möchtest, kein Problem.
Also - hast du mal versucht, den Code so zu ändern, dass die Ausgabe stimmt? So, dass nicht zweimal "10" ausgegeben wird?
edit: schön, dass du jetzt merklich Eigeninitiaitive zeigst

-
ich danke allen und vorallendingen dir für eure hilfe
ud ich bin immernoch am lernen was cll-by-refferenzen angeht schonmal danke für den tip