Âç±»è”åˆä½“类是è”åˆä½“或具有匿åè”åˆä½“çš„ç±»   作为直接æˆå‘˜ã€‚类似工会的类X具有一组å˜ä½“æˆå‘˜ã€‚   如果X是è”åˆï¼Œåˆ™ï¼ŒXçš„éžé™æ€æ•°æ®æˆå‘˜ä¸æ˜¯   匿åè”åˆæ˜¯Xçš„å˜ä½“æˆå‘˜ã€‚   作为Xæˆå‘˜çš„匿åè”盟的数æ®æˆå‘˜ä¹Ÿæ˜¯   Xçš„å˜ä½“æˆå‘˜ã€‚一个工会的最多一个å˜ä½“æˆå‘˜å¯ä»¥å…·æœ‰   默认æˆå‘˜åˆå§‹åŒ–器。 [示例:
在下é¢çš„第一个示例ä¸ï¼Œç±»C
ä¸æ˜¯ç±»çš„è”åˆï¼Œä½†æ˜¯æˆ‘们å¯ä»¥è¯´è”åˆå对象u
çš„æˆå‘˜æ˜¯...çš„å˜ä½“æˆå‘˜ã€‚ C
?如果ç”案是肯定的,为什么?
struct C{
int i;
union{
int x;
char c;
float f;
} u;
};
在我的第二个示例ä¸ï¼Œç±»C
是一个类似è”åˆçš„类,但是å¯ä»¥è¯´è”åˆå对象u
çš„æˆå‘˜æ˜¯{{ 1}}?如果ç”案是肯定的,为什么?
C
ç”案 0 :(得分:1)
通过对引用的段è½çš„简å•é˜…读,两个问题的ç”案å‡â€‹â€‹ä¸ºâ€œå¦â€ã€‚
æ ¹æ®æ ‡å‡†ï¼ŒåŒ¿å和命å工会æˆå‘˜çš„处ç†æ–¹å¼å®Œå…¨ä¸åŒã€‚例如,如果C
çš„å˜ä½“æˆå‘˜å…·æœ‰éžå¹³å‡¡çš„æžæž„函数,则C
负责以æŸç§æ–¹å¼çŸ¥é“è¦é”€æ¯å“ªä¸€ä¸ªï¼ˆç¼–译器ä¸ä¼šä¸ºC
生æˆé»˜è®¤æžæž„函数),而如果C
çš„æˆå‘˜u
是一个命åè”åˆï¼Œåˆ™C
çš„æžæž„函数将简å•åœ°è°ƒç”¨u
çš„æžæž„函数。