Значение GUID по умолчанию в c ++ - PullRequest
1 голос
/ 12 апреля 2011

Я хочу использовать GUID в своем классе.

1) Я хочу дать ему значение по умолчанию в конструкторе по умолчанию (что-то вроде 0, NULL и т. Д.).Как я могу это сделать?

2) В другом конструкторе я хочу дать ему значение по умолчанию в случае, если вызов для конструктора его не имеет.например:

the constructor: MY_CLASS(int a, int b, int c = 0, GUID g = ???)
the call: MY_CLASS m = new MY_CLASS(5,3);

Как я могу это сделать?

Спасибо

1 Ответ

3 голосов
/ 12 апреля 2011

1, значение GUID по умолчанию: GUID_NULL или IID_NULL (это псевдоним GUID_NULL)

2, я думаю, что вы должны использовать REFGUID, а не GUID напрямую. В заголовочных файлах вы можете использовать DEFINE_GUID(guid_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) для определения статического идентификатора GUID guid_name. В вашем классе определите член REFGUID и присвойте ему имя guid_name.

// {4CAD5FED-86CA-453a-B813-0876DAA992DF}
DEFINE_GUID(_guid_A, 
  0x4cad5fed, 0x86ca, 0x453a, 0xb8, 0x13, 0x8, 0x76, 0xda, 0xa9, 0x92, 0xdf);

class MyClass {
private:
  REFGUID rguid;

public:
  MyClass() : rguid(&GUID_NULL)
  { }

  MyClass(int a) : rguid(&_guid_A) 
  { }
};
...