私はプレーンC(組み込みプロジェクト、メモリが少ない)で作業しており、構造があります
typedef struct
{
int x;
int y;
int z;
float angle;
float angle1;
float angle2;
} Kind1;
すべてのフィールドが必要な場合と、x、y、および角度のみが必要な場合があります。
C ++では、これらの3つのフィールドを持つ基本クラスを作成し、そこから追加の3つのフィールドを持つ別のクラスを継承し、必要に応じて1つまたは別のクラスをインスタンス化します。プレーンCでこの動作をエミュレートするにはどうすればよいですか?
私は私が次のようなものを作ることができることを知っています
typedef struct
{
int x;
int y;
float angle;
} Kind1;
typedef struct
{
Kind1 basedata;
int z;
float angle2;
float angle3;
} Kind2;
しかし、Kind1へのポインターが要求されているKind2へのポインターを渡すことができません。
ポインタを型キャストしてオフセットすることが可能であることは知っていますが、もっと良い、より安全な方法があるのではないかと思います。