Evolutionärer Algorithmus/Strukturen



  • Ok, war der Meinung man könne mit erase den vector zu schluss anpassen. Dabei veränder ich aber nur die Anzahl der Elemente, nicht die Größe des allokierten Speichers.

    Eine andre Frage, die wahrscheinlich in blutigste Anfängerkategorie gehört:
    Ich habe in der Signatur(Übergabeparamter) zweier Funktionen zwei Variablen mit gleichem Namen deklariert, wobei die eine Funktion in der anderen aufgerufen wird. Soweit ich weiss, sind lokale Variable "gekapselt", d.h. die eine Variable in der inneren bekommt beim Durchlaufen ihrer Funktion nichts von der anderen in der äußeren Funktion mit. Oder kann es da doch zu Komplikationen kommen?

    Zuletzt noch eine ältere Frage:
    Es geht darum, dass ich ein und dieselbe Funktion in verschiedenen Klassen brauche. Muss ich die Funktion also mehrfach schreiben? Wahrscheinlich nicht. Löst man das Problem über Bibliotheken? Oder gliedert man die gemeinsam genutzten Funktionen aus-z.B. in eine Klasse MathOpera-und erzeugt in den jeweiligen Klassen Objekte dieser MathOpera-Klasse?

    Sry, dass ich hier teilweise Anfängerfragen poste. Bin noch nicht lange dabei und bin bei vielem noch unsicher, da ich es nicht genau weiss!

    Thx



  • Deklariere die Funktion einfach außerhalb einer Klasse in einem Header, und implementiere sie dann in einer cpp Datei. In C++ musst du nicht alles in Klassen stecken 😉



  • LoKi.aK schrieb:

    Ich habe in der Signatur(Übergabeparamter) zweier Funktionen zwei Variablen mit gleichem Namen deklariert, wobei die eine Funktion in der anderen aufgerufen wird.

    Sofern die Variablen in unterschiedlichen Scopes deklariert wurden (im gleichen Scope ist gar nicht möglich), benutzt du automatisch die des innersten Gültigkeitsbereiches, also quasi die lokalste. Innerhalb einer Funktion sind nur Parameter, globale und lokale Variablen bekannt - nicht aber die aus anderen Scopes.

    LoKi.aK schrieb:

    Es geht darum, dass ich ein und dieselbe Funktion in verschiedenen Klassen brauche. Muss ich die Funktion also mehrfach schreiben?

    Nein. Mehrfach schreiben solltest du grundsätzlich nichts. Implementiere die Funktion wie von otze erwähnt als freie Funktion, eventuell in einem eigenen Namensraum. Es hat keinen Sinn, eine Klasse "MathOpera" zu erzeugen, die nur ein paar Funktionen zusammenfasst. Da machst du lieber einen namespace .


Anmelden zum Antworten