C++關於類的繼承,虛函數,純虛函數,幾個修飾詞

VC關於類的繼承,虛函數,純虛函數,幾個修飾詞

一、基類與派生類

#ifndef BASECLASS_H
#define BASECLASS_H



class Baseclass
{
public:
    Baseclass();
    virtual ~Baseclass(); //基類的析構函數必須是虛函數。
    virtual void fun1();
};

#endif // BASECLASS_H


#include "baseclass.h"

Baseclass::Baseclass()
{
    puts("This is Baseclass Constructor.");
}
Baseclass::~Baseclass()
{
    puts("This is Baseclass Destructor.");
}
void Baseclass::fun1()
{
    puts("BaseClass fun1");
}

繼承類:

#ifndef CLASSA_H
#define CLASSA_H
#include "baseclass.h"

class ClassA : public Baseclass
{
public:
    ClassA();
    ~ClassA();
    void fun1();
};

#endif // CLASSA_H
#include "classa.h"

ClassA::ClassA()
{
    puts("classa constructor.");
}
ClassA::~ClassA()
{
    puts("classa destructor.");
}
void ClassA::fun1()
{
    puts("classa fun1");
}

最後顯示:

二、虛函數與純虛函數

對於範例一代碼:

virtual viod fun1();

就是虛函數,虛函數是實現類的多態的基礎,其可以被派生類重寫,實現新的功能;

而對於純虛函數:

virtual viod fun1()=0;

則是在其後增加=0;表示該函數無實體(虛函數需有實體);

同時包含純虛函數的類無法實例化;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章