在C

时间:2016-12-27 15:44:45

标签: c inheritance

我在我的一个项目中使用GTK,我注意到该库支持继承。因为您可以将子结构类型转换为其父结构,反之亦然。除了GTK,我从来没有见过这种(如此完美):

struct parent p = {5};
struct child c;
c = (struct child)p;
c.b = 1;
//c.a = 5, c.b = 1

使用父结构作为第一个元素是否这样做?因为这看起来更加整洁。但填充和对齐会干扰吗?

struct parent { int a; }
struct child  { struct parent p; int b; } 

或者重写所有父数据会让它发生吗?

struct parent { int a; }
struct child  { int a; int b; }

编辑我不打算在C中实现OOP的所有支柱。我的问题只涉及在父结构和子结构中输入数据。我发现GTK使用GObject来做到这一点,但是为了实现GObject正在进行的类型转换必须做些什么呢?

0 个答案:

没有答案