【发布时间】:2009-03-18 21:01:12
【问题描述】:
根据我在面向对象的 C 编程方面的经验,我见过两种实现派生类的方法。
第一种方法,将父类定义为 .h 文件。那么从这个类派生的每个类都会做:
文件 parent_class.h:
int member1;
int member2;
文件 testing.c:
struct parent_class {
#include "parent_class.h" // must be first in the struct
}
struct my_derived_class {
#include "parent_class.h" // must be first in the struct
int member3;
int member4;
}
第二种方法,可以:
文件 testing.c:
struct parent_class {
int member3;
int member4;
}
struct my_derived_class {
struct parent_class; // must be first in the struct
int member3;
int member4;
}
你最喜欢在 C 中做派生类的方法是什么(不一定是我所做的)?为什么?
您更喜欢哪种方法,第一种方法还是第二种方法(或您自己的方法)?
【问题讨论】:
-
如果您确实使用第一种方法,则不应使用 .h 作为 parent_class 的文件扩展名,因为这是格式良好的头文件的惯例。使用 .inc 或类似的,所以很明显文件不是真正的标题。