2016-10-29 5 views
0

私はC++でのノードクラスは次のように定義されて何度も見てきました:今の質問はありません、なぜラインであるなぜ構造ノード*は構造ノード内に書き込まれますか?

struct node 
{ 
    whatever data; 
    struct node* pointerToAnyLinkedNode; 
} 

を。 4、 'struct'はノード*の前に書かれていますか?それは特別な目的を持っていますか?私がそれを書いていなければ、それは問題を提起しないので。この質問に重複がある場合は申し訳ありません。私はBTWを1つ見つけることができませんでした。

+0

あなたは私たちの文脈と意味についての詳細を伝えることはできますか?これは、リンクリストの実装に使用される通常のパターンです。 'struct'を使うことは、C++ではオプションです。 –

+0

CコードではなくC++だったのですか?これらの2つの言語は異なる言語です(類似点はありますが) – UnholySheep

+1

"node * pointerToLinkedNode"と書いてみませんか?すべてのサンプルコードでは、キューやツリーなどのデータ構造に関係なく、「struct node * pointerToLinkedNode」が表示されます。 –

答えて

4

このイディオムは、C(開始時structと命名されるを持っている構造体の型)に由来し、C++コミュニティのコピーの不穏大部分は/オンラインチュートリアルから自分のコードを貼り付けではなく、実際にについて考えるためです彼らがやっていること。 C++、structキーワードで

(あなたが正当な理由なく、C++のコードでどこでもstruct tmを参照してくださいよ、なぜこれでもある。)

はここに冗長です。

あなたはヘッダを書いて、Cプログラムとの互換性を目指しているなら、それはそれを残して十分な理由だが、公平を期すために。

+0

私は実際にはC++でツリーを実装していますので、私が言ったようにここで構造体を使用しない方が良いでしょう。この丁寧な説明をありがとう。 –

+0

@AbdulMateen:あなたのC++ブックをチェックしたいかもしれません。 'struct'と' class'はほとんど同じですが、 'struct'の_default_アクセスは' public: 'です。 – MSalters

+0

@AbdulMateen:キーワード 'struct'は既にもし_class_を定義しています。 MSaltersが言ったことはほぼ真実です。 –

関連する問題