抽象類別(Abstract class)

假使在虛擬函式之後加上等於0,此為純虛擬函式。

class SomeClass{
public:
    // 純虛擬函式
    virtual void someFunction() = 0;
};

一個類別如果含有純虛擬函式,則該類別為抽象類別(Abstract class),該類別不能直接生成實例,繼承的子類別必須實作此函式才可產生實例,以下程式碼有一抽象類別Animal,有純虛擬函式bark(),繼承的子類別Cat、Dog則實作此函式。

#include <iostream>
using namespace std;

class Animal{
public:
    virtual void bark() = 0;
};

class Dog : public Animal{
public:
    void bark(){
        cout << "It's Dog" << endl;
    }
};

class Cat : public Animal{
public:
    void bark(){
        cout << "It's Cat" << endl;
    }
};

int main() { 
    Dog dog; 
    Cat cat; 

    dog.bark();
    cat.bark();

    system("PAUSE");
    return 0;
}