私は次のクラスを持っています:
typedef struct Listable
{
struct Listable *next;
struct Listable *prev;
// Lots of other class members not pertaining to the question excluded here
} Listable;
そして私はそれから次のように継承します:
typedef struct Object : Listable
{
} Object;
問題は、私がこのようなことをするときです:
Object *node;
for (node = objectHead; node; node = node->next);
node は Object 型ですが、node->next は Listable 型であるため、「node = node->next」でエラーが発生します。
Listable 基本クラスでテンプレートを使用して、前と次のポインターの型を使用中のクラスに変更するにはどうすればよいですか?
おそらく次のようなものです:
typedef struct Listable<T>
{
struct Listable<T> *next;
struct Listable<T> *prev;
// Lots of other class members not pertaining to the question excluded here
} Listable;
そして私はそれから次のように継承します:
typedef struct Object : Listable<Object>
{
} Object;
私は 10 年以上 C を使用していますが、テンプレートなどの C++ 機能についてはまったくの初心者です。したがって、どの構文を使用すればよいかわかりません。