0Pricing
C++ Academy · Pelajaran

auto, decltype, dan Deduksi Tipe

Biarkan kompiler mendeduksi tipe dengan auto dan decltype agar kode lebih rapi

auto, decltype, dan Deduksi Tipe adalah pelajaran C++ Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C++ Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C++ Academy mencakup 4 pelajaran total.

Deduksi Tipe dalam C++ Modern

Sejak C++11, compiler dapat menyimpulkan tipe di banyak tempat. Hal ini membuat kode lebih singkat dan mengurangi kemungkinan kesalahan—jika digunakan dengan bijak.

Kata Kunci auto

auto menyimpulkan tipe dari penginisialisasi saat kompilasi. Variabel tersebut tetap memiliki tipe tetap yang diketahui secara statis.

auto i = 42;          // int
auto d = 3.14;        // double
auto s = "hello";     // const char*
auto v = std::vector<int>{1,2,3};   // std::vector<int>

auto dan const

Secara bawaan, auto menghapus const tingkat teratas dan referensi. Tambahkan keduanya secara eksplisit jika Anda menginginkannya.

const int n = 10;
auto a = n;            // int (const dropped)
const auto& b = n;     // const int&

auto dengan Iterator

Nama tipe iterator biasanya panjang. auto sangat berguna di sini.

std::map<std::string, int> ages = {{"Ada", 30}};
auto it = ages.find("Ada");
// vs std::map<std::string,int>::iterator it = ...

for Berbasis Rentang dan auto

Gunakan auto& untuk melakukan iterasi tanpa menyalin.

for (const auto& [name, age] : ages) {
    std::cout << name << ": " << age << "\n";
}

Tipe Pengembalian di Akhir

Fungsi dapat menggunakan auto sebagai pengganti tipe pengembalian, dengan panah di akhir yang menentukan tipenya—berguna untuk templat.

auto add(int a, int b) -> int {
    return a + b;
}

Deduksi Tipe Pengembalian C++14

C++14 mengizinkan tipe pengembalian auto biasa—compiler menyimpulkannya dari pernyataan pengembalian.

auto multiply(double x, double y) {
    return x * y;       // deduced as double
}

decltype: Mendapatkan Tipe Ekspresi

decltype(expr) menghasilkan tipe expr saat kompilasi. Berbeda dari auto, decltype mempertahankan referensi dan const.

int x = 0;
int& r = x;
decltype(r) ref = x;  // int&
decltype(x) val = 0;  // int

decltype(auto)

Menggabungkan deduksi dengan aturan decltype—mempertahankan tipe ekspresi secara persis, termasuk kategori nilainya.

auto         a = some_func();   // copy
decltype(auto) b = some_func();  // exact type, including references

Kapan Menghindari auto

Hindari auto ketika tipe hasil deduksi tidak jelas—misalnya pada literal numerik besar, perhitungan campuran, atau ukuran khusus platform. Gunakan tipe yang eksplisit demi keterbacaan.

Gaya Hampir Selalu Menggunakan auto

Beberapa panduan gaya merekomendasikan auto untuk semua variabel guna menghindari konversi diam-diam. Panduan lain lebih menyukai tipe yang eksplisit. Pilih satu konvensi dan terapkan secara konsisten.

Pemeriksaan Singkat

Apa perbedaan antara auto dan decltype(auto) saat mengembalikan referensi?

Ringkasan

auto mendeduksi tipe dari penginisialisasi; decltype melaporkan tipe suatu ekspresi; decltype(auto) melakukan deduksi sambil mempertahankan referensi. Gunakan semuanya untuk mengurangi kerumitan—tetapi tetap jaga keterbacaan.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “auto, decltype, dan Deduksi Tipe” gratis?

Ya — teks lengkap “auto, decltype, dan Deduksi Tipe” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C++ Academy, upgrade ke CoddyKit PRO. Kursus C++ Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “auto, decltype, dan Deduksi Tipe”?

Biarkan kompiler mendeduksi tipe dengan auto dan decltype agar kode lebih rapi Kamu berlatih C++ Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai C++ Academy?

Tidak diperlukan pengalaman sebelumnya. C++ Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “auto, decltype, dan Deduksi Tipe” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran C++ Academy ini?

Ya. Setiap pelajaran C++ Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. auto, decltype, dan Deduksi Tipe
  2. Range-based for, nullptr, dan enum class
  3. Ekspresi Lambda: Capture, Mutable, Generik
  4. Structured Bindings dan if-init C++17
← Kembali ke C++ Academy