在c中如何实现继承的效果

http://topic.csdn.net/u/20100413/09/ffc0fcd5-c3c1-4a15-b5a2-f1bf65f50caa.html?21874

 

 

C/C++ code
 
     
typedef struct _VSCSIDISK_COMMON_DEVICE_EXTENSION { BOOLEAN IsPdo; } VSCSIDISK_COMMON_DEVICE_EXTENSION, * PVSCSIDISK_COMMON_DEVICE_EXTENSION; typedef struct _VSCSIDISK_PDO_DEVICE_EXTENSION #ifdef __cplusplus : VSCSIDISK_COMMON_DEVICE_EXTENSION { #else { VSCSIDISK_COMMON_DEVICE_EXTENSION; // 这里怎样理解? #endif ULONG DeviceId; // unique device id } VSCSIDISK_PDO_DEVICE_EXTENSION, * PVSCSIDISK_PDO_DEVICE_EXTENSION;
 
     
正确解释 16楼
 
     
因为C语言没有类及继承的概念,所以不能给结构指定基类。“VSCSIDISK_COMMON_DEVICE_EXTENSION;”就是实现继承的效果,不指定成员变量名,则可以直接访问VSCSIDISK_COMMON_DEVICE_EXTENSION中的成员,例如:
VSCSIDISK_PDO_DEVICE_EXTENSION x;
x.IsPdo = FALSE;
如果指定了成员变量名,则要用变量名来访问,假设定义为“VSCSIDISK_COMMON_DEVICE_EXTENSION a;”,则访问方式为:
VSCSIDISK_PDO_DEVICE_EXTENSION x;
x.a.IsPdo = FALSE;
 
     

你可能感兴趣的:(C++语法和使用)