Dela via


Skapa inbäddade objekt

När du skapar en instans med inbäddade objekt utför du följande uppgifter:

  • Du måste deklarera ett inbäddat objekt som starkt typat eller svagt typat.

    Ett starkt skrivet objekt pekar på ett objekt i en viss klass och använder klassnamnet. Ett svagt skrivet objekt pekar på ett objekt i en ospecificerad klass och använder -objektet nyckelord. Båda objekten mappas till den VT_UNKNOWN typen.

  • Du kan använda NULL- för standardvärdet för inbäddade objekt och sökvägar i initieringar och deklarationer.

  • När du bäddar in en objektsökväg ska du inte placera blanksteg mellan elementen i den inbäddade sökvägen. Objektsökvägen "Class1Index=3;" innehåller till exempel inget utrymme mellan egenskapsnamnet "Class1index" och värdet som tilldelas, vilket är "3".

Följande klassdeklaration visar hur du deklarerar starkt typade och svagt typade inbäddade objekt.

Class MyClass
{
    EmbedClass    Object1;          // Strongly typed
    object        Object2;          // Weakly typed
};

I följande exempel beskrivs hur du deklarerar inbäddade objekt i en klassdeklaration.

Class Class1 
{ 
     [key] sint32 Class1Index;
};

Class Class2 
{
    [key] sint32 Class2Index;
    Class1 EmbedObject1 = instance of Class1{Class1Index=3;};
};

Class Class3
{
    [key] sint32 Class3Index;
    Class2 EmbedObject2 = instance of Class2 {Class2Index=4;};
};

I följande exempel beskrivs initieringen av en egenskap som är ett starkt skrivet objekt och en annan egenskap som är en matris med svagt skrivna objekt.

Class EmbedClass1
{
    [key] sint32 intval;
};

Class EmbedClass2
{
    [key] string sval;
};

Class ContainerClass
{
    [key] sint32 intval;
    EmbedClass1 SingleObject;
    Object ArrayObject[];
};

Instance of ContainerClass
{
    intval = 33;
    SingleObject = instance of EmbedClass1 {intval=99;};
    ArrayObject = {instance of EmbedClass2 {sval="something";},
                   instance of EmbedClass1 {intval=100;}};
};