テンプレートを使用した、リスト用の構造体について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
シエル

テンプレートを使用した、リスト用の構造体について

#1

投稿記事 by シエル » 15年前

お世話になります。シエルです。

連続で質問すいません。

タスクシステムを作っている最中なんですが、そのためのリストの構造体についても
テンプレートを使って、基底クラスに持たせています。

実際はこんなのではありませんが、簡単に作りました。
template <typename T1> struct LIST{
T1 p;//関数ポインタが入っている。
LIST *next;
};

メンバ変数pには関数ポインタを入れます。
まあそれはどうでもいいんですが、その下のメンバのnextについてです。
この変数は次のリストを表すポインタになります。

この書き方があっているかについて確認したいのですが、
今現在は、上記のような書き方でコンパイルしても問題なくリストとして動いています。

ですが、下記のような書き方でも動きます。
template <typename T1> struct LIST{
T1 p;//関数ポインタが入っている。
LIST<T1> *next;//これにも明示的な具現化をする。
};

このnextはLIST型のポインタなので、そのLIST型はこの構造体テンプレートから作られているので、
これも明示的な具現化が必要かな?と思ってこうしてみました。

これでも問題なくコンパイルは通り、リストとしても問題なく動きました。

この二つの方法はどちらが正しいのでしょうか?

どなたかお分かりになる方、ご教示願います。

※独学で勉強中でして、まだ勉強したてなので、変な文言とかがあったらすみません。 画像


シエル

Re:テンプレートを使用した、リスト用の構造体について

#3

投稿記事 by シエル » 15年前

どちらも正しいんですかwでは問題ないですね。

ぽこさん、ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る