Array in struct auf Werte setzen
-
struct Foo { int intArray[8]; } int main() { Foo foo; foo.intArray = {0, 8, 9, 9, 4, 7, 6, 12}; //So geht das nicht return 0; }Wie kann ich das Array mit Werten wie gezeigt befüllen, ohne auf jedes Element einzeln zugreifen zu müssen?
-
C++ statt C machen:
#include <array> struct Foo { std::array<int, 8> intArray; }; // Nach Klassendefinitionen Semikolon nicht vergessen! int main() { Foo foo; foo.intArray = {0, 8, 9, 9, 4, 7, 6, 12}; //So geht das }Üblicher wäre es jedoch, seine Objekte so zu gestalten, dass sie sofort bei Erstellung alle nötigen Daten erhalten und somit direkt einsetzbar sind. Also mit einem Konstruktor.
-
SeppJ schrieb:
C++ statt C machen:
#include <array> struct Foo { std::array<int, 8> intArray; }; // Nach Klassendefinitionen Semikolon nicht vergessen! int main() { Foo foo; foo.intArray = {0, 8, 9, 9, 4, 7, 6, 12}; //So geht das }Üblicher wäre es jedoch, seine Objekte so zu gestalten, dass sie sofort bei Erstellung alle nötigen Daten erhalten und somit direkt einsetzbar sind. Also mit einem Konstruktor.
Ich hab das Array ja in ner struct und net in ner Klasse, weil ich keine Funktionen brauche...trotzdem danke für die Hilfe!

-
Shedex schrieb:
Ich hab das Array ja in ner struct und net in ner Klasse, weil ich keine Funktionen brauche...trotzdem danke für die Hilfe!

structundclasssind übrigens exakt dasselbe, mit dem einzigen Unterschied, dass die Standard-Sichtbarkeit (sofern nicht explizit angegeben) bei einemstruct"public" und bei einerclass"private" ist.
structs können also durchaus Konstruktoren haben.
Es ist allerdings durchaus verbreitet, für simple Daten-"Klassen" bei denen man die Member-Variablen direkt setzt, und die keine großartige Logik über irgendwelche Memberfunktionen implementieren einstructzu verwenden.
Das heisst aber nicht, dass man gar keine Member-Funktionen oder Konstruktoren verwenden sollte, wenn es Sinn macht.Finnegan