Tutorial C ++ data abstraksi Terbaik Pada tahun 2024, Dalam tutorial ini Anda dapat mempelajari Akses tab wajib Abstrak,Abstraksi data Manfaat,Misalnya data abstrak,Strategi desain,

C ++ data abstraksi

Abstraksi data mengacu hanya untuk memberikan informasi penting ke dunia luar, dan menyembunyikan rincian implementasi latar belakang mereka, bahwa kinerja hanya informasi yang diperlukan tanpa menyajikan rincian.

Abstraksi data adalah ketergantungan pada antarmuka pemrograman dan pemisahan pelaksanaan (desain) teknologi.

Mari kita contoh nyata kehidupan nyata, seperti TV, Anda dapat menghidupkan dan mematikan, mengubah saluran, mengatur volume, menambahkan komponen eksternal (seperti speaker, VCR, pemutar DVD), tetapi Anda tidak tahu internalnya rincian pelaksanaan, yaitu, Anda tidak tahu bagaimana hal itu diterima oleh sinyal kabel, bagaimana mengkonversi sinyal dan akhirnya ditampilkan pada layar.

Oleh karena itu, kita dapat mengatakan TV untuk pelaksanaan internal dan antarmuka eksternal dipisahkan, dan Anda tidak tahu prinsip internal, langsung melalui antarmuka eksternal (seperti tombol power pada remote control, pengatur volume suara) dapat mengontrol TV.

Sekarang, mari kita turun ke bisnis, itu adalah dalam hal pemrograman C ++, C ++ kelasdata abstraksi mungkin.Mereka ke dunia luar menyediakan metode umum untuk operasi sejumlah besar objek data, yang, pada kenyataannya, dunia luar tidak tahu pelaksanaan kelas internal.

Misalnya, program Anda dapat memanggil fungsisort (), tanpa perlu mengetahui fungsi dari algoritma yang digunakan untuk mengurutkan data.Bahkan, fungsi yang mendasari realisasi semacam itu karena repositori yang berbeda bervariasi, asalkan antarmuka yang sama, fungsi panggilan seperti biasa.

Dalam C ++, kita menggunakankelas kita sendiri untuk mendefinisikan tipe data abstrak (ADT).Anda dapat menggunakanostream kelas coutobjek data output ke output standar, sebagai berikut:

#include <iostream>
using namespace std;

int main( )
{
   cout << "Hello C++" <<endl;
   return 0;
}

Di sini, Anda tidak mengerti bagaimana tekscout ditampilkan pada layar pengguna.Anda hanya perlu tahu antarmuka publik untuk, cout mendasari pelaksanaan dapat bebas berubah.

Akses tab wajib Abstrak

Dalam C ++, kita menggunakan tab Access untuk mendefinisikan kelas antarmuka abstrak. Sebuah kelas dapat berisi nol atau lebih akses label:

  • Tag mendefinisikan penggunaan anggota masyarakat dapat mengakses semua bagian dari program tersebut. pandangan abstrak dari jenis data publik oleh anggotanya ditetapkan.
  • Penggunaan label pribadi didefinisikan menggunakan anggota kelas tidak dapat memiliki akses ke kode. bagian pribadi dari kode menggunakan jenis rincian pelaksanaan hide.

tag frekuensi akses muncul tidak ada batasan. Setiap tag menentukan akses diikuti oleh anggota tingkat akses yang ditetapkan. Tingkat akses yang ditetapkan akan tetap berlaku sampai berikutnya tab pertemuan Access atau menutup jenis tubuh yang tepat ditemui dalam kurung.

Abstraksi data Manfaat

Abstraksi data memiliki dua keuntungan penting:

  • kelas batin dilindungi dari kesalahan pengguna tingkat sengaja menyebabkan kerusakan pada keadaan objek.
  • Dengan pelaksanaan kelas dapat berubah dari waktu ke waktu, untuk merespon perubahan kebutuhan, atau memenuhi kebutuhan tersebut tidak mengubah laporan kode kesalahan tingkat pengguna.

bagian pribadi mendefinisikan data anggota kelas, jika hanya dalam penyusunan penulis seperti bebas dapat mengubah data. Jika diterapkan perubahan, Anda hanya perlu memeriksa kode untuk kelas untuk melihat apa dampak perubahan ini dapat menyebabkan. Jika data publik, setiap akses langsung ke bentuk lama anggota fungsi representasi data yang mungkin akan terpengaruh.

Misalnya data abstrak

C ++ Program, setiap kelas dengan anggota abstraksi data publik dan swasta dapat digunakan sebagai contoh. Perhatikan contoh berikut:

#include <iostream>
using namespace std;

class Adder{
   public:
      // 构造函数
      Adder(int i = 0)
      {
        total = i;
      }
      // 对外的接口
      void addNum(int number)
      {
          total += number;
      }
      // 对外的接口
      int getTotal()
      {
          return total;
      };
   private:
      // 对外隐藏的数据
      int total;
};
int main( )
{
   Adder a;
   
   a.addNum(10);
   a.addNum(20);
   a.addNum(30);

   cout << "Total " << a.getTotal() <<endl;
   return 0;
}

Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:

Total 60

Kelas atas angka bersama dan mengembalikan jumlah tersebut. Anggota masyarakataddNum dan getTotaladalah antarmuka eksternal, pengguna perlu tahu untuk menggunakan kelas mereka. anggota swastaTotal pengguna tidak perlu tahu, tetapi kelas dapat bekerja diperlukan.

Strategi desain

Abstrak untuk memisahkan kode ke antarmuka dan implementasi. Jadi dalam desain komponen, antarmuka harus tetap independen dari pelaksanaan, sehingga jika Anda mengubah mendasari pelaksanaan, antarmuka akan tetap tidak berubah.

Dalam hal ini, terlepas dari setiap program menggunakan antarmuka, antarmuka tidak akan terpengaruh, hanya untuk menyadari kompilasi terbaru.

C ++ data abstraksi
10/30