Masih ingatkah Anda kalimat pada pelajaran terakhir: “Kelas adalah abstraksi dan generalisasi suatu objek, dan objek adalah konkrit dan turunan dari suatu kelas”? Setelah mempelajari definisi kelas, langkah selanjutnya adalah membuat dan menggunakan objek !
1. Pembuatan objek:
Kelas adalah struktur yang berisi fungsi. Ini adalah tipe data yang ditentukan sendiri. Gunakan untuk mendefinisikan variabel, yang merupakan objek kelas ini didefinisikan, bisa juga dikatakan Instantiate suatu objek, itulah maksudnya!
Penggunaan objek sama dengan penggunaan struktur. Mereka terutama mengakses anggota di dalamnya, dan semuanya diakses menggunakan , seperti:
StudentA;A.num=101;strcpy(A.name,dotcpp);A.score=100;A.print();
Perlu diperhatikan bahwa variabel anggota kelas di sini semuanya dideklarasikan sebagai tipe publik . Jika dideklarasikan sebagai tipe privat, maka dilarang melaporkan kesalahan jika diakses langsung terutama melalui objek dan variabel pada fungsi utama alasannya adalah Variabel tipe privat adalah tipe privat dan tidak mengizinkan akses eksternal.
Untuk variabel privat yang ingin kita lindungi tetapi ingin dikontrol, kita biasanya mendeklarasikannya sebagai tipe privat, dan kemudian mendefinisikan metode penugasan khusus tipe publik pada saat yang sama. Karena anggota internal dapat mengakses variabel yang dideklarasikan secara privat, kita dapat menggunakan ini publik secara eksternal. metode untuk mengontrol secara tidak langsung anggota swasta ini untuk mencapai efek enkapsulasi dan perlindungan, dan metode tipe publik ini juga disebut antarmuka eksternal kelas ini. Tolong pahami kalimat ini!
2. Penunjuk ke objek:
Seperti variabel biasa, objek juga merupakan ruang memori yang berkesinambungan, sehingga Anda juga dapat membuat penunjuk ke objek, yaitu penunjuk objek , untuk menyimpan alamat objek.
Kemudian cara pembuatannya mirip dengan menggunakan pointer tipe umum, dan cara definisinya adalah sebagai berikut:
Nama kelas * nama penunjuk;
Misalnya, definisikan Student *p; tentukan pointer p bertipe Clock. Harus jelas bahwa objek tidak dibuat di sini, dan tentu saja konstruktor tidak akan dipanggil. Selanjutnya, Anda dapat menetapkan alamat objek kelas dengan tipe yang sama ke penunjuk ini, lalu mengakses anggota dalam objek tersebut melalui ->.
Kodenya adalah sebagai berikut:
Siswa*p;MahasiswaA;p=&A;p->cetak();
Di atas adalah cara menggunakan pointer objek. Selain menggunakannya saat menetapkan nilai dan mengakses anggota, disarankan juga menggunakan pointer saat meneruskan parameter, karena pointer meneruskan alamat dan tidak menyalin tugas antar objek, sehingga mengurangi overhead memori. dan meningkatkan efisiensi.
3. Referensi objek:
Referensi adalah tipe baru dalam C++. Referensi objek adalah alias untuk objek kelas. Intinya, alamat objek kelas ditetapkan ke tipe referensi. Jadi bagaimana mendefinisikan penggunaan? Tunjukkan kepada Anda di bawah.
PelajarA;Mahasiswa&Aq=A;
Seperti yang ditunjukkan pada kode di atas, tentukan objek bertipe Student, lalu gunakan & untuk mendefinisikan tipe referensi bertipe ini, dan tetapkan objek A ke Aq sebagai inisialisasi.
Hal yang perlu diperhatikan adalah:
1. Seperti halnya pointer, keduanya harus bertipe sama sebelum dapat direferensikan.
2. Kecuali jika nilai kembalian atau parameter formal suatu fungsi digunakan, tipe referensi lain harus diinisialisasi pada saat yang sama!
3. Tipe referensi tidak membuat objek baru, sehingga konstruktor tidak akan dipanggil.
Jadi karena merupakan alias dari objek kelas, maka metode penggunaannya sama dengan objek kelas, yaitu menggunakan metode alias.member untuk mengaksesnya, seperti:
PelajarA;Mahasiswa&Aq=A;Aq.print();
Seperti yang Anda lihat, saat menggunakan tipe referensi, esensinya tetap berupa alamat yang disimpan. Oleh karena itu, apa pun definisi parameternya, tidak akan ada terlalu banyak overhead memori digunakan sama dengan objek kelas itu sendiri. Saat membuat argumen fungsi, cukup masukkan objek referensi secara langsung tanpa menambahkan karakter alamat, sehingga terlihat lebih intuitif dan nyaman. Inilah keuntungan dari tipe referensi.