array definition
-
Hallo,
wie deklariert / definiert man am Besten ein static Array[] in c++, bei dem bereits zu Beginn die Werte vorhanden sein sollen?
/* **** Headerfile ********** */ class A { protected: typedef struct test { UINT test1; Cstring test2; } A_REPLY; static A_REPLY TestConfig = {0x41, "Hallo"}; };Gruß
Konrad
-
Ich sehe bei dir kein Array.
/* **** Headerfile ********** */ class A { protected: struct reply { unsigned int test1; char const* test2; }; static reply TestConfig; }; /* **** CPP-Datei ********** */ A::reply A::TestConfig = {0x41, "Hallo"};
-
Meinst du sowas?
// ein Array mit 5 Werten, die den Wert 5 haben :D static int myArray[] = { 5, 5, 5, 5, 5};
-
krümelkacker schrieb:
Ich sehe bei dir kein Array.
/* **** Headerfile ********** */ class A { protected: struct reply { unsigned int test1; char const* test2; }; static reply TestConfig; }; /* **** CPP-Datei ********** */ A::reply A::TestConfig = {0x41, "Hallo"};wie kann ich bei der Definition im Headerfile anschließend TestConfig initialisieren?
TestConfig = {0x41, "Hallo"};funktioniert nicht, nur
TestConfig.test1 = 0x41; [cpp]{0x41, "Hallo"};funktioniert...
Eigentlich möchte ich jedoch gern eine static struct Variable bereits zu Beginn mit Werten gesetzt haben (ohne dass diese zu Beginn noch belegt werden müssen).
Gruß
Konrad
-
In C++ kannst du einen Konstruktur benutzen.
-
#include <iostream> class A { public: struct reply { unsigned int test1; char const* test2; reply(unsigned int t1, char const* t2) : test1(t1), test2(t2) { } }; static reply TestConfig; }; A::reply A::TestConfig = reply(1312, "Hallo, Welt!"); int main() { std::cout << A::TestConfig.test1 << std::endl; std::cout << A::TestConfig.test2 << std::endl; return 0; }Deine Variante müsste aber auch gehen, unter Visual Studio 2010 kompiliert das.
-
Konrad Bauer schrieb:
krümelkacker schrieb:
/* **** Headerfile ********** */ class A { protected: struct reply { unsigned int test1; char const* test2; }; static reply TestConfig; }; /* **** CPP-Datei ********** */ A::reply A::TestConfig = {0x41, "Hallo"};wie kann ich bei der Definition im Headerfile anschließend TestConfig initialisieren?
Was? Wo? Ich sehe in dem "Headerfile"-Abschnitt keine Definition von TestConfig. Ich sehe eine Deklaration von A::TestConfig. Innerhalb einer Klasse oder eines Structs ist "static typ datenelement;" nie eine Definition. Immer nur eine Deklaration.
Konrad Bauer schrieb:
Eigentlich möchte ich jedoch gern eine static struct Variable bereits zu Beginn mit Werten gesetzt haben (ohne dass diese zu Beginn noch belegt werden müssen).
Ich bin mir nicht sicher, ob ich Dich verstanden habe. Es sieht für mich so aus, als ob ich die Frage oben schon beantwortet hätte. Was gefällt Dir denn an dem nicht, was ich geschrieben habe?
kk