Computer >> Máy Tính >  >> Lập trình >> C ++

Các hàm ảo thuần túy và các lớp trừu tượng trong C ++


Một hàm ảo thuần túy là một hàm ảo trong C ++ mà chúng ta không cần viết bất kỳ định nghĩa hàm nào và chỉ chúng ta phải khai báo nó. Nó được khai báo bằng cách gán 0 trong khai báo.

Lớp trừu tượng là một lớp trong C ++ có ít nhất một hàm thuần ảo.

  • Lớp trừu tượng có thể có các hàm và biến bình thường cùng với một hàm ảo thuần túy.

  • Lớp trừu tượng không thể được khởi tạo, nhưng có thể tạo con trỏ và tham chiếu của loại lớp Trừu tượng.

  • Các lớp trừu tượng chủ yếu được sử dụng cho Upcasting, để các lớp dẫn xuất của nó có thể sử dụng giao diện của nó.

  • Nếu một Lớp trừu tượng có lớp dẫn xuất, chúng phải triển khai tất cả các hàm thuần ảo, nếu không chúng cũng sẽ trở thành Trừu tượng.

  • Chúng tôi không thể tạo đối tượng của lớp trừu tượng vì chúng tôi dành một vị trí cho một hàm thuần ảo trong Vtable, nhưng chúng tôi không đặt bất kỳ địa chỉ nào, vì vậy Vtable sẽ vẫn chưa hoàn thiện.

Mã mẫu

#include<iostream>
using namespace std;
class B {
   public:
      virtual void s() = 0; // Pure Virtual Function
};

class D:public B {
   public:
      void s() {
         cout << "Virtual Function in Derived class\n";
      }
};

int main() {
   B *b;
   D dobj;
   b = &dobj;
   b->s();
}

Đầu ra

Virtual Function in Derived class