1.memset是运行时清零,而{0}则是编译时清零
2.typedef unsigned int UINT;
typedef UINT* PUINT;
以上定义合法。
3.可以对引用再次引用
4.MIDL_INTERFACE
定义接口方法如下:
MIDL_INTERFACE("55BCC111-5D80-4916-8765-6E4402253499")
IKGetUserIdentity : public IUnknown
{
public:
//....
};
其中MIDL(Microsoft Interface Definition Language)微软接口定义语言;
宏MIDL_INTERFACE定义
#define MIDL_INTERFACE(x) struct DECLSPEC_UUID(x) DECLSPEC_NOVTABLE,
#define DECLSPEC_UUID(x) __declspec(uuid(x))
所以接口的定义就是
struct DECLSPEC_UUID(uuid("55BCC111-5D80-4916-8765-6E4402253499"))
IKGetUserIdentity : public IUnknown
{
public:
//....
};
其意义是,IKGetUserIdentity是一个接口,__declspec把一个GUID值赋给了接口IKGetUserIdentity
5:关于const一些容易错的东西
1.const成员变量只能在初始化列表中初始化,除非是static的const变量
2.const类对象/指针/引用,只能调用类的const成员函数;因为无法从对象内的this指针从const this转为this指针