创建嵌入对象

创建包含嵌入对象的实例时,请执行以下任务:

  • 必须将嵌入对象声明为强类型或弱类型对象。

    强类型对象指向特定类的对象,并使用类名。 弱类型对象指向未指定类的对象,并使用 object 关键字。 这两种对象都映射到 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;}};
};