Variabel pribadi adalah cara untuk menyembunyikan kerumitan dan detail implementasi kepada pengguna kelas. Ini adalah fitur yang agak bagus. Tapi saya tidak mengerti mengapa di c ++ kita harus meletakkannya di header sebuah kelas. Saya melihat dua kelemahan yang mengganggu ini:
- Itu mengacaukan header dari pengguna
- Ini memaksa kompilasi ulang semua perpustakaan klien setiap kali internal diubah
Apakah ada alasan konseptual di balik persyaratan ini? Apakah hanya untuk memudahkan pekerjaan di luar kompiler?
struct foo{};
) tidak diperbolehkan, tetapi meneruskan deklarasi ( struct foo;
) adalah.