struct本身不能支持动态绑定,为了实现统一接口,我们希望实现动态绑定。
例如在不同的操作系统下,对文件的操作是不同,但是我们希望统一结构,有如下结构
struct OSFile
{
PIOMethod pMethods;
/*
其他信息
*/
};
struct WinOSFile
{
PIOMethod pMethods;
..........
};
struct UnixOSFile
{
PIOMethod pMethods;
..........
};
有如下方法:
void UniAPI(OSFile *file);
为了实现动态绑定,做法是在调用该方法之前,将WinOSFile或者UnixOSFile的pMethods赋给OSFile的pMethods从而实现动态绑定。