Udostępnij za pośrednictwem


Tworzenie obiektów osadzonych

Podczas tworzenia wystąpienia z obiektami osadzonymi wykonaj następujące zadania:

  • Należy zadeklarować obiekt osadzony jako silnie typizowany lub słabo typizowany.

    Silnie typowany obiekt wskazuje obiekt określonej klasy i używa nazwy klasy. Obiekt o słabym typowaniu odwołuje się do obiektu nieokreślonej klasy i używa słowa kluczowego do obiektu. Oba obiekty mapują się na typ VT_UNKNOWN.

  • Można użyć null wartości domyślnej obiektów osadzonych i ścieżek w inicjowaniu i deklaracjach.

  • Podczas osadzania ścieżki obiektu nie umieszczaj odstępu między elementami osadzonej ścieżki. Na przykład ścieżka obiektu "Class1Index=3;" nie zawiera spacji między nazwą właściwości "Class1index" a przypisaną wartością "3".

Poniższa deklaracja klasy pokazuje, jak zadeklarować silnie typizowane i słabo typizowane obiekty osadzone.

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

W poniższych przykładach opisano sposób deklarowania obiektów osadzonych w deklaracji klasy.

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;};
};

W poniższym przykładzie opisano inicjowanie jednej właściwości, która jest silnie typizowanym obiektem i inną właściwością, która jest tablicą słabo typiowanych obiektów.

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;}};
};