Ich bin neu in C ++ und schreibe den folgenden Code.
Ich musste über alle Addons in meiner Aufruffunktion iterieren - testFunction
. Ich weiß, das funktioniert in C #, aber dieser Code funktioniert nicht. Kann mir jemand bitte den richtigen Weg weisen, es in C ++ zu machen?
Ich habe versucht, Vektor wie unten Vorschläge von euch zu implementieren
%Vor%Ein Array (ein unformatiertes Array) zerfällt in einen Zeiger, wenn es als Argument für eine Funktion übergeben wird, so dass Ihr Array keine Größeninformationen enthält.
Sie müssen die Länge des Arrays explizit in die Funktion eingeben, um sie in der Funktion zu kennen.
Alternativ und besser, verwenden Sie std::vector
und dann haben Sie die .size()
immer verfügbar, wenn sie benötigt werden.
Abgesehen von der Verwendung von Vektoren, wie Tony es vorschlägt, können Sie Vorlagen verwenden und das Array als Referenz übergeben, damit der Compiler die Größe des Arrays ableitet:
%Vor% Wenn Sie std::vector
oder std::array
verwenden würden, könnten Sie std::foreach
,
Sie verwenden Konzepte von C # in C ++, aber selbst wenn wir annehmen, dass beide Sprachen ähnlich sind, sind sie nicht gleich.
Die Syntax für eine Entfernungsangabe in C ++ lautet die folgenden :
%Vor% Sie können dies für flavour verwenden, wenn Sie einen C ++ 11-Compiler
Übrigens scheint es, dass Sie Eigenschaften für Ihren Code verwenden:
%Vor%In C ++ gibt es so etwas nicht. Wenn Sie eine Objektmethode aufrufen wollen, müssen Sie sie als Funktion aufrufen:
%Vor% Aber die addons
Variable ist kein Objekt, ist ein Array (sehen Sie sich dieses Tutorial ), so dass es keine Methode oder Eigenschaft namens length
; Wenn Sie ihre Länge kennen müssen, um sie zu iterieren, können Sie in einigen Kontexten den Operator sizeof
verwenden (weitere Informationen finden Sie im Lernprogramm).
Nehmen wir an, dass addons
ein Container wäre:
Wenn Sie es mit dem C ++ 11-Bereich für iterieren möchten, können Sie es wie folgt schreiben:
%Vor%Ich hoffe, es hilft.
Code arbeitet mit diesem
für (int i = 0; i & lt; (end (Feld) - Anfang (Feld)); i ++)
Gebe maximale Größe zurück
Testen Sie, ob das Array leer ist
%Vor%Element des Arrays
%Vor%Arraygröße
%Vor%Tags und Links c++ c++11 visual-c++