程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 在虛函數的聲明的參數列表之後加上“=0”就將函數變成了純虛函數

在虛函數的聲明的參數列表之後加上“=0”就將函數變成了純虛函數

編輯:C++入門知識

  虛函數:在虛函數的聲明的參數列表之後加上“=0”就將函數變成了純虛函數,如:


[cpp] 
class  Base 

    virtual void function()=0; 

class  Base
{
    virtual void function()=0;
}我們不需要為純虛函數Base::function()提供任何定義,那些聲明了純虛函數的類就是抽象類。任何試圖創建一個抽象類對象的操作都會導致編譯器錯誤。

如果一個類派生子Base並且重寫了Base::function()函數,它就成為了具體的類了。

[cpp] 
class Derived :public Basae 

  void function(); 

class Derived :public Basae
{
  void function();
}
我們通常將抽象類用作接口聲明,這時我們不需要為該接口聲明一個完整的實現,該接口描述了所有派生自該類的對象都應該支持的操作;派生類必須實現這些抽象操作。

[cpp] 
class  Base 

    public: 
        virtual void print()=0; 
}; 
class Derived :public Base 

    public: 
        virtual void print() 
        { 
            cout<<"Derived::Derived()\n"; 
        } 
        ~Derived() 
        { 
            print(); 
        } 
}; 
int main() 

    Derived D; 
    Base* ptr=&D; 
    D.print(); 

class  Base
{
    public:
        virtual void print()=0;
};
class Derived :public Base
{
    public:
        virtual void print()
        {
            cout<<"Derived::Derived()\n";
        }
        ~Derived()
        {
            print();
        }
};
int main()
{
    Derived D;
    Base* ptr=&D;
    D.print();
}運行結果:
Derived::Derived()

Derived::Derived()


第一個Derived::Derived()是通過D直接調用print()時所產生的輸出,第二個是在程序結束時調用~Derived()時產生的輸出。

雖然我們不可以直接創建抽象類的對象了,但是仍然可以使用指向Base的指針和引用。

比如: Base* ptr= &D;

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved