2011-04-12 89 views
1

我想在我的類中使用GUID。C++中的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

你可以試試'GUID_NULL'。 – rwong 2011-04-12 03:56:59

回答

2

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