Chcę zadeklarować i zainicjować tablicę elementów zarządzanych 1D.Inicjowanie tablic w zarządzanym C++
Jeśli był kod C#, chciałbym napisać to tak:
VdbMethodInfo[] methods = new VdbMethodInfo[] {
new VdbMethodInfo("Method1"),
new VdbMethodInfo("Method2")
};
Staram się pisać (no, rzeczywiście, piszę program wygeneruje) samo w zarządzanym C++ .. .
Do tej pory mam:
typedef array<VdbMethodInfo^, 1> MethodArray;
// How do I avoid pre-declaring the size of the array up front?
MethodArray^ methods = gcnew MethodArray(2);
methods[0] = gcnew VdbMethodInfo("Method1");
methods[1] = gcnew VdbMethodInfo("Method2");
Istnieją dwa problemy z tym:
- To bardziej gadatliwy
- Wymaga mi deklarować rozmiar tablicy z góry, co jest niewygodne dla mojego generator kodu
Czy istnieje „array inicjalizacji” składnia dla tablic GC w Managed C++? Jaka jest prawidłowa składnia? Czy istnieje dobry link do tego i innych podobnych pytań?
Dzięki - dokładnie to, co szukałem! –
W dekompilatorze C++/CLI dla odbłyśnika brakowało gcnew, a typ tablicy w deklaracji z jakiegoś powodu. Dodanie tego rozwiązało problem. Dzięki. http://www.sandpapersoftware.com/Main/Reflector.html – jpierson