私は単純なVector2クラス/構造体がfloat xとyとカップルメソッドを必要とします。 私はまだ相違を回避するつもりですが、まだそれを得ることはできません これは通常、構造体で行われることはわかっていますが、Vector2の大きな2D配列をフレームごとに更新したいので、クラスを改善するでしょう構造体よりも? 途中で最初に投稿し、すべての返信を前もってありがとう!Vector2:クラスまたは構造体?
答えて
は、この操作のための構造体
よりもクラスより良くするんでしょう、どちらも特にどの良くも悪くもだろう。しかし、長命のオブジェクトが多いと、GCの不具合が発生する可能性があります。 「大規模な2D配列」ということは、構造体を使用することによって、かなりの量のオーバーヘッド(オブジェクトヘッダー)を潜在的に節約できることを意味します。
親愛なる! **あなたは構造体を使ってかなりの量のオーバーヘッド(オブジェクトヘッダー)を潜在的に保存することもできます**これは私が消化するにはあまりにも多くの情報です。もう少し説明できますか? –
あまりにも消化するのは大変ですが、グーグルではちょっとしたアイディアがあります。 もし私がそれを正しく理解していれば、プリミティブ型を収集するよりも高価な構造体をガベージコレクションすることになりますか?それは、フロートの2つの配列をGCで簡単にするでしょうか?オーバーヘッドの量も倍増しないでしょうか?どちらが好きですか?また、彼らは不変でない限り、構造体を使わないと言っています。 "mutability"とみなされるすべてのフレームを更新していませんか?返信ありがとう – Hadi
@UmairM 'class'のすべてのインスタンスは**オブジェクト**です。オブジェクトには、*オブジェクトヘッダー*と実際のデータで構成されるヒープ上の領域が割り当てられます。値型は*他のものの一部として*割り当てられ、オブジェクトヘッダーはありません。型はそれを所有するものを介して暗示されます。配列の場合、型は配列*の型によって暗黙に*されます。数千から数百万の小さなデータがあると、この違いが加わり始めます。 –
- 1. .NETのラッパータイプ:構造体またはクラス?
- 2. 構造体またはポインタの構造体ですか?
- 3. C#クラスと構造体
- 4. MSVC++クラス構造体にキャスト
- 5. のemacs:クラスと構造体
- 6. リンクされたリスト、クラス構造体?
- 7. 構造体またはクラスとパブリックデータはどうですか?
- 8. 構造体のクラスとファクトリのクラス
- 9. 構造体とクラスCではC++
- 10. はなぜ構造体を作成した構造体宣言
- 11. クラス、構造体、またはインターフェイスメンバ宣言の無効なトークン 'String'
- 12. 構造体またはクラスのメンバーに問い合わせる
- 13. 構造体またはクラスをパラメータとして使用する
- 14. 無効なトークン ';'クラス構造体またはインターフェイスのメンバ宣言
- 15. 構造体またはクラス定義のコンパイラの最適化
- 16. スウィフト定数ファイル - クラスまたは構造体?
- 17. C# - クラス構造体またはインターフェイスメンバー宣言の無効なトークン ''
- 18. 別の構造体から新しい構造体または既存の構造体にコピー
- 19. C構造体内の構造体内部の構造体
- 20. は、構造体
- 21. 構造体は
- 22. 構造体または配列構造の配列パフォーマンス
- 23. エラーは、私は、クラス構造体にアクセスしようとしているクラスの構造体
- 24. クラス/構造体の中にクラス/構造体を置くことは、実際には "法的"かUSEDか?
- 25. C++の構造体内の構造体
- 26. 構造体変数と構造体メンバ
- 27. sizeof構造体内構造体
- 28. 構造体内の構造体
- 29. 構造体の配列 - 構造体?
- 30. コンバートPCCERT_CONTEXT - X509構造体またはASN1
私は**構造** – MrClan
私は理解していないあなたの質問のUnity3Dタグを与えることです。エンジンには既にVector2/3/4構造体がありますので、自分で作成する必要はありません。 – Everts
私は、定数更新が構造体よりもクラスを良くして、新しいVector2クラスを作るべきだと思った。 – Hadi