포함 개체 만들기

포함 개체를 사용해 인스턴스를 만들 때 다음 작업을 수행합니다.

  • 포함 개체를 강력한 형식 또는 약한 형식으로 선언해야 합니다.

    강력한 형식의 개체는 특정 클래스의 개체를 가리키고 클래스 이름을 사용합니다. 약한 형식의 개체는 특정하지 않은 클래스의 개체를 가리키고 개체 키워드를 사용합니다. 두 개체 모두 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;}};
};