[問題] 用 C 模擬繼承
雖然標題說繼承,不過我想做的事情是這樣的:
把兩個 struct 共同的欄位抽取出來,再各自加上自己獨有的欄位
假設我有這樣的兩個大同小異的 struct (Tn 代表是某種 Type)
struct s1 { struct s2 {
T1 a; T1 a;
T2 b; T2 b;
T3 c; T3 c;
T4 z; T5 y;
}; };
這樣的話我該怎麼讓它們的宣告化簡呢?
如果我這麼寫:
struct base { struct s1 { struct s2 {
T1 a; struct base base; struct base base;
T2 b; T4 z; T5 y;
T3 c; }; };
};
雖然可以成功抽取共同的部份,但是使用卻變得有所不便:
struct s1 s;
s.base.a = N; // 如果我要對 a 賦值,還要多插一個 base
有沒有辦法能讓我兼顧「不要重覆宣告」與「不影響取值方式」呢?
使用平台:Linux GCC
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.133.199
推
01/05 01:15, , 1F
01/05 01:15, 1F
推
01/05 01:16, , 2F
01/05 01:16, 2F
→
01/05 01:19, , 3F
01/05 01:19, 3F
→
01/05 01:24, , 4F
01/05 01:24, 4F
推
01/05 01:24, , 5F
01/05 01:24, 5F
→
01/05 10:03, , 6F
01/05 10:03, 6F
→
01/06 13:38, , 7F
01/06 13:38, 7F
→
01/06 13:40, , 8F
01/06 13:40, 8F
→
01/06 14:58, , 9F
01/06 14:58, 9F
→
01/06 15:32, , 10F
01/06 15:32, 10F