Pure Virtural Function

Pure Virtual Function என்பது ஒரு virtual function ஆகும். இது base class-ல் declare செய்யப்பட்டு இருக்கும் ஆனால் அதை நாம் செயல்படுத்துவதில்லை. ஒரு pure virtual function-க்கு definition இல்லாமல் 0 assign செய்யப்பட்டு இருக்கும்.

#include <iostream.h>
#include <conio.h>
using namespace std; 
class BaseClass{
  public:
    virtual show()=0;
};

Complete example for pure virtual function

#include <iostream.h>
#include <conio.h>
using namespace std; 
class Base{ 
   int x; // private variable
public: 
    virtual void fun() = 0; //pure virtual function 
    int getX(){ 
      return x; 
    } 
}; 
// This class inherits from Base and implements fun() 
class Derived: public Base{ 
    int y; 
public: 
    void tfun() { 
    cout <<"tfun() called"; 
    } 
}; 
int main(void) 
{ 
    Derived d; 
    d.tfun(); 
    return 0; 
} 

Output:

tfun() called
ஒரு class-ல் ஒரு pure virtual function இருந்தால் அவற்றிற்கு object create செய்ய இயலாது. இந்த function-ஐ derived class-ல் override செய்யவில்லை எனில் அந்த derived class-ம் abstract class-ஆக மாறிவிடும்.
#include <iostream.h>
#include <conio.h>
using namespace std; 
class Test 
{ 
   int x; 
public: 
    virtual void show() = 0; 
    int getX() { return x; } 
}; 
  
int main(void) 
{ 
    Test t; 
    return 0; 
}

Output:

Compiler Error: cannot declare variable 't' to be of abstract type 'Test' because the following virtual functions are pure within 'Test': note: virtual void Test::show()

Comments