Bila tipe fundamental tidak cukup, kita dapat membentuk tipe sendiri. Section ini membahas struct beserta member-nya, enum dan scoped enum, union, hingga structured bindings untuk mengelompokkan data yang saling berkaitan dalam satu kesatuan.
Mengenal struct sebagai tipe data komposit untuk mengelompokkan beberapa variabel terkait ke dalam satu kesatuan bernama.
Buka → # Member VariablesMendalami isi struct: aturan member variables, tipe apa saja yang boleh dijadikan member, serta bagaimana compiler menyusun ukuran memori struct.
Buka → # Aggregate InitializationMengisi struct sejak lahir dengan daftar nilai: inisialisasi penuh, parsial, designated initializers C++20, inisialisasi bertingkat, dan syarat aggregate.
Buka → # Nested StructMendefinisikan struct di dalam struct, mengakses member bertingkat, memilih lokasi definisi nested type, dan struct yang membawa container.
Buka → # EnumMengenal unscoped enum sebagai konstanta bernama: nilai implisit dan eksplisit, serta masalah bocornya nama enumerator ke scope sekitar.
Buka → # Scoped Enum (enum class)Mengenal enum class sebagai versi aman enumerasi: scope tertutup, tanpa konversi implisit, static_cast eksplisit, dan underlying type kustom.
Buka → # UnionMengenal union yang berbagi satu area memori: aturan member aktif, ukuran memori, pola tagged union, anonymous union, dan alternatif modern std::variant.
Buka → # Type Alias dengan usingMemberi nama bermakna pada struct, enum, dan tipe komposit lain lewat using, lengkap dengan perbandingan singkat terhadap typedef.
Buka → # Structured BindingsFitur C++17 untuk mengurai isi struct, std::pair, std::tuple, dan std::array menjadi beberapa variabel bernama dalam satu pernyataan.
Buka →