Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

Abstraksi Data dalam C++

Abstraksi data mengacu pada penyediaan hanya informasi penting ke dunia luar dan menyembunyikan detail latar belakang mereka, yaitu, untuk mewakili informasi yang dibutuhkan dalam program tanpa menyajikan detailnya.

Abstraksi data adalah teknik pemrograman (dan desain) yang bergantung pada pemisahan antarmuka dan implementasi.

Mari kita ambil satu contoh nyata dari TV, yang dapat Anda nyalakan dan matikan, ubah saluran, sesuaikan volume, dan tambahkan komponen eksternal seperti speaker, VCR, dan pemutar DVD, TETAPI Anda tidak mengetahui detail internalnya, yang adalah, Anda tidak tahu bagaimana ia menerima sinyal melalui udara atau melalui kabel, bagaimana menerjemahkannya, dan akhirnya menampilkannya di layar.

Dengan demikian, kita dapat mengatakan bahwa televisi dengan jelas memisahkan implementasi internal dari antarmuka eksternal dan Anda dapat bermain dengan antarmuka seperti tombol daya, pengubah saluran, dan kontrol volume tanpa mengetahui internalnya.

Dalam C++, kelas menyediakan tingkat abstraksi data yang hebat . Mereka menyediakan metode publik yang memadai ke dunia luar untuk bermain dengan fungsionalitas objek dan untuk memanipulasi data objek, yaitu, menyatakan tanpa benar-benar mengetahui bagaimana kelas telah diimplementasikan secara internal.

Misalnya, program Anda dapat membuat panggilan ke sort() fungsi tanpa mengetahui algoritma apa yang sebenarnya digunakan fungsi untuk mengurutkan nilai yang diberikan. Faktanya, implementasi yang mendasari fungsi pengurutan dapat berubah di antara rilis perpustakaan, dan selama antarmuka tetap sama, panggilan fungsi Anda akan tetap berfungsi.

Dalam C++, kami menggunakan kelas untuk mendefinisikan tipe data abstrak (ADT) kita sendiri. Anda dapat menggunakan cout objek kelas ostream untuk mengalirkan data ke keluaran standar seperti ini

Demo Langsung
#include <iostream>
using namespace std;

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

Di sini, Anda tidak perlu memahami cara cout menampilkan teks di layar pengguna. Anda hanya perlu mengetahui antarmuka publik dan implementasi dasar dari 'cout' bebas untuk diubah.

Label Akses Menerapkan Abstraksi

Di C++, kami menggunakan label akses untuk mendefinisikan antarmuka abstrak ke kelas. Sebuah kelas dapat berisi nol atau lebih label akses −

Tidak ada batasan seberapa sering label akses dapat muncul. Setiap label akses menentukan tingkat akses dari definisi anggota berikutnya. Tingkat akses yang ditentukan tetap berlaku hingga label akses berikutnya ditemukan atau kurung kurawal kanan penutup badan kelas terlihat.

Manfaat Abstraksi Data

Abstraksi data memberikan dua keuntungan penting

Dengan mendefinisikan anggota data hanya di bagian pribadi kelas, pembuat kelas bebas untuk membuat perubahan pada data. Jika implementasi berubah, hanya kode kelas yang perlu diperiksa untuk melihat apa yang mempengaruhi perubahan tersebut. Jika data bersifat publik, maka fungsi apa pun yang secara langsung mengakses anggota data dari representasi lama mungkin akan rusak.

Contoh Abstraksi Data

Setiap program C++ di mana Anda mengimplementasikan kelas dengan anggota publik dan pribadi adalah contoh abstraksi data. Perhatikan contoh berikut

Demo Langsung
#include <iostream>
using namespace std;

class Adder {
   public:
      // constructor
      Adder(int i = 0) {
         total = i;
      }
      
      // interface to outside world
      void addNum(int number) {
         total += number;
      }
      
      // interface to outside world
      int getTotal() {
         return total;
      };
      
   private:
      // hidden data from outside world
      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 dieksekusi, menghasilkan hasil sebagai berikut

Total 60

Kelas di atas menambahkan angka bersama-sama, dan mengembalikan jumlahnya. Anggota publik - addNum dan getTotal adalah antarmuka ke dunia luar dan pengguna perlu mengetahuinya untuk menggunakan kelas. Anggota pribadi total adalah sesuatu yang tidak perlu diketahui pengguna, tetapi diperlukan agar kelas dapat beroperasi dengan baik.

Merancang Strategi

Abstraksi memisahkan kode menjadi antarmuka dan implementasi. Jadi saat mendesain komponen, Anda harus menjaga antarmuka tetap independen dari implementasi sehingga jika Anda mengubah implementasi yang mendasarinya, antarmuka akan tetap utuh.

Dalam hal ini, program apa pun yang menggunakan antarmuka ini, tidak akan terpengaruh dan hanya perlu kompilasi ulang dengan implementasi terbaru.


Bahasa C

  1. Tipe Data C++
  2. Operator C++
  3. Kelas dan Objek C++
  4. Template Kelas C++
  5. Tipe Data C++ Char dengan Contoh
  6. Java - Abstraksi
  7. Java - Struktur Data
  8. Kelas Penyimpanan di C++
  9. Struktur Data C++
  10. Polimorfisme dalam C++