Apa itu Kelas?
Kelas C ++ menggabungkan data dan kaedah untuk memanipulasi data menjadi satu. Kelas juga menentukan bentuk objek. Data dan kaedah yang terdapat dalam kelas dikenali sebagai ahli kelas. Kelas adalah jenis data yang ditentukan pengguna. Untuk mengakses ahli kelas, kami menggunakan contoh kelas. Anda dapat melihat kelas sebagai cetak biru untuk objek.
Kelas menjadi prototaip untuk sebuah rumah. Ini menunjukkan lokasi dan ukuran pintu, tingkap, lantai, dll. Dari keterangan ini, kita dapat membina sebuah rumah. Rumah menjadi objek. Ada kemungkinan untuk membuat banyak rumah dari prototaip. Juga, mungkin untuk membuat banyak objek dari kelas.
Dalam gambar di atas, kami mempunyai prototaip rumah tunggal. Dari prototaip ini, kami telah membuat dua rumah dengan ciri yang berbeza.
Dalam tutorial ini, anda akan belajar:
- Apa itu Kelas?
- Contoh Kelas
- Kata Kunci Peribadi dan Awam
- Definisi Objek
- Mengakses Ahli Data
- Fungsi Ahli Kelas
- Pembina dan Pemusnah
Pengisytiharan Kelas
Dalam C +, kelas didefinisikan menggunakan kata kunci kelas. Ini mesti diikuti dengan nama kelas. Badan kelas kemudian ditambahkan di antara pendakap kerinting {}.
Sintaks:
class class-name{// data// functions};
- Nama kelas adalah nama yang akan diberikan kepada kelas.
- Data adalah data untuk kelas, biasanya dinyatakan sebagai pemboleh ubah.
- Fungsinya adalah fungsi kelas.
Kata Kunci Peribadi dan Awam
Anda pasti menemui dua kata kunci ini. Mereka adalah pengubah akses.
- Peribadi:
Apabila kata kunci peribadi digunakan untuk menentukan fungsi atau kelas, kata kunci menjadi peribadi. Itu hanya boleh diakses dari dalam kelas.
- Orang ramai:
Kata kunci awam, sebaliknya, menjadikan data / fungsi menjadi umum. Ini boleh diakses dari luar kelas.
Definisi Objek
Objek dibuat dari kelas. Objek kelas dinyatakan dengan cara yang sama seperti pemboleh ubah dinyatakan. Nama kelas mesti dimulakan, diikuti dengan nama objek. Objek jenis kelas.
Sintaks:
class-name object-name;
- Class-name adalah nama kelas dari mana objek hendak dibuat.
- Objek-nama adalah nama yang akan diberikan kepada objek baru.
Proses membuat objek dari kelas ini dikenali sebagai instantiation.
Mengakses Ahli Data
Untuk mengakses anggota kelas awam, kami menggunakan operator titik (.). Ini adalah ahli yang ditandai dengan pengubah akses awam.
Contoh 1:
#includeusing namespace std;class Phone {public:double cost;int slots;};int main() {Phone Y6;Phone Y7;Y6.cost = 100.0;Y6.slots = 2;Y7.cost = 200.0;Y7.slots = 2;cout << "Cost of Huawei Y6 : " << Y6.cost << endl;cout << "Cost of Huawei Y7 : " << Y7.cost << endl;cout << "Number of card slots for Huawei Y6 : " << Y6.slots << endl;cout << "Number of card slots for Huawei Y7 : " << Y7.slots << endl;return 0;}
Pengeluaran:
Berikut adalah tangkapan skrin kod:
Penjelasan Kod:
- Sertakan fail header iostream dalam kod kami untuk menggunakan fungsinya.
- Termasuk ruang nama std dalam kod kami untuk menggunakan kelasnya tanpa memanggilnya.
- Menyatakan kelas bernama Telefon.
- Menggunakan pengubah akses awam untuk menandakan pemboleh ubah yang akan kami buat sebagai boleh diakses oleh umum.
- Menyatakan kos berubah dari jenis data berganda.
- Menyatakan pembolehubah integer bernama slot.
- Akhir badan kelas.
- Memanggil fungsi utama (). Logik program harus ditambahkan dalam badannya.
- Buat objek bernama Y6 jenis telefon. Ini dipanggil instantiasi.
- Buat objek bernama Y7 dari jenis telefon. Ini dipanggil instantiasi.
- Akses pemboleh ubah / kos ahli kelas Telefon menggunakan objek Y6. Nilai ditetapkan ke 100.0. Kos Y6 kini ditetapkan kepada 100.0.
- Akses slot pemboleh ubah / anggota kelas Telefon menggunakan objek Y6. Nilai ditetapkan ke 2. Slot untuk Y6 kini ditetapkan ke 2.
- Akses pemboleh ubah / kos ahli kelas Telefon menggunakan objek Y7. Nilai ditetapkan ke 200.0. Kos Y7 kini ditetapkan kepada 200.0.
- Akses slot pemboleh ubah / anggota kelas Telefon menggunakan objek Y7. Nilai ditetapkan ke 2. Slot untuk Y7 kini ditetapkan ke 2.
- Cetak kos Y6 pada konsol bersama teks lain.
- Cetak kos Y7 pada konsol bersama teks lain.
- Cetak bilangan slot untuk Y6 bersama teks lain.
- Cetak bilangan slot untuk Y7 bersama teks lain.
- Program mesti mengembalikan nilai setelah berjaya diselesaikan.
- Akhir fungsi utama () fungsi.
Apa itu Kelas Peribadi?
Ahli kelas yang ditandai sebagai peribadi hanya dapat diakses oleh fungsi yang ditentukan dalam kelas. Mana-mana objek atau fungsi yang ditentukan di luar kelas tidak dapat mengakses ahli tersebut secara langsung. Ahli kelas peribadi hanya diakses oleh fungsi ahli dan rakan.
Apakah Kelas yang Dilindungi?
Anggota kelas yang ditandai sebagai dilindungi mempunyai kelebihan berbanding yang ditandai sebagai peribadi. Mereka boleh diakses dengan fungsi dalam kelas definisi mereka. Selain itu, mereka boleh diakses dari kelas turunan.
Contoh 2:
#includeusing namespace std;class ClassA {public:void set_a(int val);int get_a(void);private:int a;};int ClassA::get_a(void) {return a;}void ClassA::set_a(int val) {a = val;}int main() {ClassA a;a.set_a(20);cout << "Value of a is: " << a.get_a();return 0;}
Pengeluaran:
Berikut adalah tangkapan skrin kod:
Penjelasan Kod:
- Sertakan fail tajuk iostream dalam kod kami untuk menggunakan fungsinya.
- Sertakan ruang nama std dalam kod kami untuk menggunakan kelasnya tanpa memanggilnya.
- Buat kelas bernama ClassA.
- Gunakan pengubah akses awam untuk menandakan ahli kelas yang akan dibuat sebagai boleh diakses oleh umum.
- Buat fungsi bernama set_a () yang mengambil satu nilai integer val.
- Buat fungsi bernama get_a ().
- Gunakan pengubah akses peribadi untuk menandakan ahli kelas yang akan dibuat sebagai akses peribadi.
- Menyatakan pemboleh ubah integer bernama a.
- Akhir badan kelas.
- Gunakan nama kelas dan pengendali resolusi skop untuk mengakses fungsi get_a (). Kami ingin menentukan apa fungsi dilakukan semasa dipanggil.
- Fungsi get_a () harus mengembalikan nilai pemboleh ubah a ketika dipanggil.
- Akhir definisi fungsi get_a ().
- Gunakan nama kelas dan pengendali resolusi skop untuk mengakses fungsi set_a (). Kami ingin menentukan apa fungsi dilakukan semasa dipanggil.
- Menetapkan nilai pemboleh ubah val kepada pemboleh ubah a.
- Akhir definisi fungsi set_a ().
- Panggil fungsi utama (). Logik program harus ditambahkan dalam badan fungsi ini.
- Buat contoh ClassA dan beri nama a.
- Gunakan contoh kelas di atas dan fungsi set_a () untuk memberikan nilai 20 kepada pemboleh ubah a.
- Mencetak beberapa teks di samping nilai pemboleh ubah a pada konsol. Nilai pemboleh ubah a diperoleh dengan memanggil fungsi get_a ().
- Program mesti mengembalikan nilai setelah berjaya diselesaikan.
- Hujung badan fungsi utama ().
Contoh 3:
#includeusing namespace std;class ParentClass {protected:int value;};class ChildClass : public ParentClass {public:void setId(int x) {value = x;}void displayValue() {cout << "Value is: " << value << endl;}};int main() {ChildClass c;c.setId(21);c.displayValue();return 0;}
Pengeluaran:
Berikut adalah tangkapan skrin kod:
Penjelasan Kod:
- Sertakan fail tajuk iostream dalam kod kami untuk menggunakan fungsinya.
- Sertakan ruang nama std dalam kod kami untuk menggunakan kelasnya tanpa memanggilnya.
- Buat kelas bernama ParentClass.
- Gunakan pengubah akses dilindungi untuk menandakan ahli kelas yang akan dibuat sebagai dilindungi.
- Buat pembolehubah integer bernama nilai.
- Akhir badan kelas.
- Buat kelas baru bernama ChildClass yang mewarisi ParentClass.
- Gunakan pengubah akses dilindungi untuk menandakan ahli kelas yang akan dibuat sebagai boleh diakses ke kelas kanak-kanak.
- Buat fungsi bernama setId () yang mengambil satu nilai integer x.
- Menetapkan nilai pemboleh ubah x kepada nilai pemboleh ubah.
- Akhir definisi fungsi setId ().
- Buat fungsi bernama displayValue ().
- Cetak nilai pemboleh ubah bernama pada konsol di samping teks lain.
- Hujung badan fungsi displayValue ().
- Akhir badan kelas yang diberi nama ChildClass.
- Panggil fungsi utama (). Logik program harus ditambahkan dalam badan fungsi ini.
- Buat contoh ChildClass dan beri nama c.
- Gunakan contoh kelas di atas dan fungsi setId () untuk menetapkan nilai 21 kepada pemboleh ubah x.
- Gunakan contoh kelas di atas untuk memanggil fungsi bernama displayValue ().
- Program mesti mengembalikan nilai setelah berjaya diselesaikan.
- Hujung badan fungsi utama ().
Fungsi Ahli Kelas
Fungsi membantu kita memanipulasi data. Fungsi ahli kelas dapat ditentukan dalam dua cara:
- Di dalam definisi kelas
- Di luar definisi kelas
Sekiranya fungsi hendak ditentukan di luar definisi kelas, kita mesti menggunakan pengendali resolusi skop (: :). Ini mesti disertakan dengan nama kelas dan fungsi.
Contoh 2:
#include#include using namespace std;class Guru99{public:string tutorial_name;int id;void printname();void printid(){cout << "Tutorial id is: "<< id;}};void Guru99::printname(){cout << "Tutorial name is: " << tutorial_name;}int main() {Guru99 guru99;guru99.tutorial_name = "C++";guru99.id = 1001;guru99.printname();cout << endl;guru99.printid();return 0;}
Pengeluaran:
Berikut adalah tangkapan skrin kod:
Penjelasan Kod:
- Sertakan fail header iostream dalam program kami untuk menggunakan fungsinya.
- Sertakan fail header rentetan dalam program kami untuk menggunakan fungsinya.
- Sertakan ruang nama std dalam kod kami untuk menggunakan kelasnya tanpa memanggilnya.
- Buat kelas bernama Guru99.
- Gunakan pengubah akses awam untuk menandakan ahli kelas yang akan kami buat sebagai boleh diakses oleh umum.
- Buat pemboleh ubah rentetan bernama tutorial_name.
- Buat pembolehubah integer bernama id.
- Buat fungsi bernama printname (). Fungsi ini tidak ditentukan dalam definisi kelas.
- Buat fungsi bernama dicetak (). Fungsi ini ditakrifkan dalam definisi kelas. Tubuhnya telah ditambahkan dalam definisi kelas.
- Cetak nilai id pemboleh ubah bersama teks lain di konsol. Perhatikan ini telah ditambahkan dalam badan fungsi printid (). Ia hanya akan dilaksanakan apabila fungsi printid () dipanggil.
- Bahagian akhir fungsi printid ().
- Hujung badan Guru99 kelas.
- Permulaan definisi fungsi printname ().
- Cetak nilai pemboleh ubah tutorial_name pada konsol bersama teks lain. Perhatikan ini telah ditambahkan dalam badan fungsi printname (). Ia hanya akan dilaksanakan apabila fungsi printname () dipanggil.
- Akhir definisi fungsi printname ().
- Panggil fungsi utama (). Logik program harus ditambahkan dalam badan fungsi ini.
- Buat contoh kelas Guru99 dan beri nama guru99.
- Gunakan contoh di atas untuk menetapkan nilai C ++ pada nama_pemboleh ubah.
- Gunakan contoh guru99 untuk memberikan nilai 1001 pada id pemboleh ubah.
- Gunakan instance9999 untuk memanggil fungsi printname ().
- Panggil arahan akhir (garis akhir) untuk mencetak baris kosong baru di konsol.
- Gunakan contoh guru99 untuk memanggil fungsi printid ().
- Program mesti mengembalikan nilai setelah berjaya diselesaikan.
- Akhir fungsi utama () fungsi.
Pembina dan Pemusnah
Apa itu Pembina?
Konstruk adalah fungsi khas yang memulakan objek. Penyusun C ++ memanggil konstruktor semasa membuat objek. Pembina membantu memberikan nilai kepada ahli kelas. Sudah tentu, ini setelah mereka diberi ruang memori.
Apa itu Pemusnah?
Pembinasakan sebaliknya membantu memusnahkan objek kelas.
Nama pembina mestilah serupa dengan nama kelas. Pembina tidak mempunyai jenis pulangan.
Pembina boleh didefinisikan di dalam atau di luar badan kelas. Sekiranya ditakrifkan di luar badan kelas, ia harus ditentukan dengan nama kelas dan pengendali resolusi skop (: :).
Contoh 3:
#includeusing namespace std;class ClassA {public:ClassA() {cout << "Class constructor called"< Pengeluaran:
Berikut adalah tangkapan skrin kod:
Penjelasan Kod:
- Sertakan fail header iostream ke dalam kod untuk menggunakan fungsinya.
- Sertakan ruang nama std dalam kod kami untuk menggunakan kelasnya tanpa memanggilnya.
- Buat kelas bernama ClassA.
- Gunakan pengubah akses awam untuk menandakan ahli yang akan kita buat sebagai boleh diakses oleh umum.
- Buat konstruktor untuk kelas.
- Teks untuk dicetak pada konsol semasa konstruktor dipanggil. Endl adalah kata kunci C ++, yang bermaksud garis akhir. Ia menggerakkan kursor tetikus ke baris seterusnya.
- Hujung badan pembina kelas.
- Buat pemusnah untuk kelas.
- Teks untuk dicetak pada konsol semasa pemusnah dipanggil. Endl adalah kata kunci C ++, yang bermaksud garis akhir. Ia menggerakkan kursor tetikus ke baris seterusnya.
- Hujung badan pemusnah.
- Akhir badan kelas.
- Panggil fungsi utama (). Logik program harus ditambahkan dalam badan fungsi ini.
- Buat objek kelas dan beri nama a. Pembina akan dipanggil.
- Buat pembolehubah integer bernama p dan berikan nilai 1.
- Buat blok pernyataan if menggunakan pemboleh ubah p.
- Buat objek kelas dan beri nama b. Pemusnah akan dipanggil.
- Akhir badan penyataan if.
- Akhir badan utama () fungsi.
Ringkasan:
- C ++ berorientasikan objek.
- Kelas membentuk ciri utama C ++ yang menjadikannya berorientasikan objek.
- Kelas C ++ menggabungkan data dan kaedah untuk memanipulasi data menjadi satu.
- Kelas adalah cetak biru untuk objek.
- Kelas menentukan bentuk objek.
- Data dan kaedah yang terdapat dalam kelas dikenali sebagai ahli kelas.
- Untuk mengakses ahli kelas, anda harus menggunakan contoh kelas.
- Untuk membuat kelas, kami menggunakan kata kunci kelas.
- Fungsi ahli kelas dapat ditentukan di dalam atau di luar kelas.