Biasanya kita dapat mendefinisikan variabel untuk struct C ++, seperti pada
struct foo {
int bar;
};
Bisakah kita juga mendefinisikan fungsi untuk struct? Bagaimana kita menggunakan fungsi tersebut?
Jawaban:
Ya, a struct
identik dengan a class
kecuali untuk tingkat akses default (berdasarkan anggota dan berdasarkan warisan). (dan makna tambahannya class
terbawa saat digunakan dengan template)
Karena itu, setiap fungsionalitas yang didukung oleh sebuah kelas didukung oleh sebuah struct. Anda akan menggunakan metode yang sama seperti yang Anda gunakan untuk kelas.
struct foo {
int bar;
foo() : bar(3) {} //look, a constructor
int getBar()
{
return bar;
}
};
foo f;
int y = f.getBar(); // y is 3
Struktur dapat memiliki fungsi seperti kelas. Satu-satunya perbedaan adalah bahwa mereka bersifat publik secara default:
struct A {
void f() {}
};
Selain itu, struct juga dapat memiliki konstruktor dan destruktor.
struct A {
A() : x(5) {}
~A() {}
private: int x;
};