Static String Array Initialization in MC++

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • rmathieu@cae.com

    Static String Array Initialization in MC++

    Hi, I want to initialize a static String array in MC++. What I want to
    do is to initialize my String array like the C# way: new String[]
    {"11", "22"} but I could not find an equivalent in MC++. The onlu
    thing I can do is this: new String*[2] but I cannot specified any
    initial values... Did someone have any ideas???

    Here is an example of what I want to do:
    C#
    struct TestingStruct
    {
    public String a;
    public String[] b;

    public TestingStruct( String aa, String[] bb )
    {
    a = aa;
    b = bb;
    }
    };

    TestingStruct[] Test1 =
    { new TestingStruct(" abc", new String[] {"11", "22"}),
    new TestingStruct(" def", new String[] {"33", "44"})
    };

    MC++
    __gc struct TestingStruct
    {
    String* a;
    String* b[];

    TestingStruct( String* aa, String* bb[] )
    {
    a = aa;
    b = bb;
    }
    };

    static TestingStruct* Test1[] =
    { new TestingStruct(" AF", new String*[2]), // This is working but
    how can I add initial values???
    new TestingStruct(" BC", new String*[2]) // This is working but
    how can I add initial values???
    };

    Any help will be appreciated...

    Remi

  • Antti Keskinen

    #2
    Re: Static String Array Initialization in MC++

    Hi !

    The answer is simple: you can't. Here's an exerpt from the C/C++ Library
    Reference on MSDN:'

    "Provides a value for the initialized object. Initializers cannot be
    specified for arrays. The new operator will create arrays of objects only if
    the class has a default constructor."

    The code you posted cannot be used in the way you describe. Instead, create
    a static function that takes the struct count, the string count and an array
    of strings, then initializes the strings by using a for-loop. The function
    returns a pointer to the first struct, and through a parameter it returns
    the amount of structures actually initialized.

    -Antti Keskinen


    <rmathieu@cae.c om> wrote in message
    news:1116945364 .200309.324480@ z14g2000cwz.goo glegroups.com.. .[color=blue]
    > Hi, I want to initialize a static String array in MC++. What I want to
    > do is to initialize my String array like the C# way: new String[]
    > {"11", "22"} but I could not find an equivalent in MC++. The onlu
    > thing I can do is this: new String*[2] but I cannot specified any
    > initial values... Did someone have any ideas???
    >
    > Here is an example of what I want to do:
    > C#
    > struct TestingStruct
    > {
    > public String a;
    > public String[] b;
    >
    > public TestingStruct( String aa, String[] bb )
    > {
    > a = aa;
    > b = bb;
    > }
    > };
    >
    > TestingStruct[] Test1 =
    > { new TestingStruct(" abc", new String[] {"11", "22"}),
    > new TestingStruct(" def", new String[] {"33", "44"})
    > };
    >
    > MC++
    > __gc struct TestingStruct
    > {
    > String* a;
    > String* b[];
    >
    > TestingStruct( String* aa, String* bb[] )
    > {
    > a = aa;
    > b = bb;
    > }
    > };
    >
    > static TestingStruct* Test1[] =
    > { new TestingStruct(" AF", new String*[2]), // This is working but
    > how can I add initial values???
    > new TestingStruct(" BC", new String*[2]) // This is working but
    > how can I add initial values???
    > };
    >
    > Any help will be appreciated...
    >
    > Remi
    >[/color]


    Comment

    • Tamas Demjen

      #3
      Re: Static String Array Initialization in MC++

      rmathieu@cae.co m wrote:[color=blue]
      > Hi, I want to initialize a static String array in MC++. What I want to
      > do is to initialize my String array like the C# way: new String[]
      > {"11", "22"} but I could not find an equivalent in MC++. The onlu
      > thing I can do is this: new String*[2] but I cannot specified any
      > initial values... Did someone have any ideas???[/color]

      In C++/CLI you can do it now. Of course you have two choices: either use
      Beta product, or don't initialize arrays. The VC++ 2003 form designer
      can't initialize arrays either, but VC++ 2005 can and does.

      Tom

      Comment

      Working...