Kami sering menggunakan c ++ struct untuk mendefinisikan struktur data sebagai lawan dari kelas yang dapat menjadi modul lengkap dengan metode anggota. Sekarang jauh di lubuk hati, kita tahu mereka berdua sama (secara longgar).
Fakta bahwa kita sering menggunakan / memperlakukan struct sebagai entitas data saja menciptakan desakan ini bahwa kita juga tidak menambahkan konstruktor default. Tetapi konstruktor selalu bagus, mereka membuat hal-hal sederhana dan membantu menghilangkan kesalahan.
Apakah akan disukai jika menambahkan konstruktor default ke struktur data saya?
Apakah menerapkan konstruktor default juga membuat struct Non-POD (tipe data lama biasa) asalkan kriteria lain terpenuhi?
Untuk menempatkan hal-hal dalam perspektif, pertimbangkan contoh sederhana tetapi dalam kenyataannya struct akan jauh lebih besar.
struct method
{
char name[32];
float temperature;
int duration;
};
Setiap kali saya membuat metode, saya harus khawatir tentang (untuk sedikitnya) jika saya lupa menetapkan beberapa nilai. Bayangkan saya lupa mengatur temperature
dan menerapkan metode ke sistem yang sekarang menjadi nilai tinggi acak dan menyebabkan kekacauan. Atau saya lupa mengatur duration
dan sekarang metode ini berlaku untuk durasi tinggi yang tidak diketahui.
Mengapa saya harus bertanggung jawab untuk menginisialisasi objek setiap kali alih-alih mengimplementasikan konstruktornya yang menjaminnya?
struct
dan class
apakah yang satu default untuk pribadi dan yang lain untuk publik.