Kelas Abstrak C ++ dan Fungsi Maya Tulen

Dalam tutorial ini, kita akan belajar mengenai fungsi maya abstrak dan kelas abstrak dengan bantuan contoh.

Sebelum kita mengetahui mengenai fungsi maya tulen, pastikan untuk memeriksa tutorial ini:

  • Pewarisan C ++
  • Fungsi maya C ++

Fungsi Maya C ++ Murni

Fungsi maya tulen digunakan

  • jika fungsi tidak mempunyai penggunaan dalam kelas asas
  • tetapi fungsinya mesti dilaksanakan oleh semua kelas yang berasal

Mari kita ambil contoh,

Katakan, kita telah memperoleh Triangle, Squaredan Circlekelas dari Shapekelas, dan kita mahu mengira luas semua bentuk ini.

Dalam kes ini, kita dapat membuat fungsi maya murni yang disebut calculateArea()di Shape. Oleh kerana ia adalah fungsi maya murni, semua kelas berasal Triangle, Squaredan Circlemesti menyertakan calculateArea()fungsi dengan pelaksanaan.

Fungsi maya yang murni tidak mempunyai fungsi badan dan mesti diakhiri dengan = 0. Sebagai contoh,

 class Shape ( public: // creating a pure virtual function virtual void calculateArea() = 0; );

Nota: The = 0sintaks tidak bermakna kita memberikan 0 kepada majlis itu. Ini hanya cara kita menentukan fungsi maya yang murni.

Kelas Abstrak

Kelas yang mengandungi fungsi maya dikenali sebagai kelas abstrak. Dalam contoh di atas, kelas Shapeadalah kelas abstrak.

Kami tidak dapat membuat objek kelas abstrak. Walau bagaimanapun, kami dapat memperoleh kelas dari mereka, dan menggunakan fungsi data anggota dan anggota mereka (kecuali fungsi maya murni).

Contoh: Kelas Abstrak C ++ dan Fungsi Maya Tulen

 // C++ program to calculate the area of a square and a circle #include using namespace std; // Abstract class class Shape ( protected: float dimension; public: void getDimension() ( cin>> dimension; ) // pure virtual Function virtual float calculateArea() = 0; ); // Derived class class Square : public Shape ( public: float calculateArea() ( return dimension * dimension; ) ); // Derived class class Circle : public Shape ( public: float calculateArea() ( return 3.14 * dimension * dimension; ) ); int main() ( Square square; Circle circle; cout << "Enter the length of the square: "; square.getDimension(); cout << "Area of square: " << square.calculateArea() << endl; cout << "Enter radius of the circle: "; circle.getDimension(); cout << "Area of circle: " << circle.calculateArea() << endl; return 0; )

Pengeluaran

 Masukkan panjang untuk mengira luas segiempat sama: 4 Luas persegi: 16 Masukkan jejari untuk mengira luas bulatan: 5 Luas bulatan: 78.5

Dalam program ini, virtual float calculateArea() = 0;di dalam Shapekelas terdapat fungsi maya yang murni.

Itulah sebabnya kita mesti memberikan pelaksanaan calculateArea()di kedua-dua kelas turunan kita, jika tidak, kita akan mendapat ralat.

Artikel menarik...