Создание внедренных объектов

При создании экземпляра с внедренными объектами выполните следующие задачи:

  • Необходимо объявить внедренный объект строго типизированным или слабо типизированным.

    Строго типизированный объект указывает на объект определенного класса и использует имя класса. Слабо типизированный объект указывает на объект неопределенного класса и использует ключевое слово объекта. Оба объекта соответствуют типу VT_UNKNOWN.

  • Можно использовать NULL для значения по умолчанию внедренных объектов и путей в инициализациях и объявлениях.

  • При внедрении пути к объекту не помещайте пробел между элементами этого пути. Например, путь объекта "Class1Index=3;" не содержит пробела между именем свойства "Class1index" и назначенным значением, которое равно "3".

В следующем объявлении класса показано, как объявить строго типизированные и слабо типизированные внедренные объекты.

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

В следующих примерах описывается объявление внедренных объектов в объявлении класса.

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

В следующем примере описывается инициализация одного свойства, которое является строго типизированным объектом и другим свойством, которое является массивом слабо типизированных объектов.

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