---
title: "What are virtual and pure virtual functions?"  
description: "What are virtual and pure virtual functions?"  
author: "Ravi Vishwakarma"  
published: 2021-08-23  
updated: 2021-08-23  
canonical: https://www.mindstick.com/forum/156711/what-are-virtual-and-pure-virtual-functions  
category: "c#"  
tags: ["c#", "c++"]  
reading_time: 2 minutes  

---

# What are virtual and pure virtual functions?

What are virtual and pure [virtual functions](https://www.mindstick.com/forum/159480/explain-the-purpose-of-the-virtual-keyword-and-virtual-functions-in-c-plus-plus)?

## Replies

### Reply by Ashutosh Kumar Verma

**[Virtual](https://yourviews.mindstick.com/view/81341/the-oh-so-fight-for-democracy-virtual-rally-scenes) Function -** Virtual function is member function of class. It is declare with ' virtual' keyword in base class and also we provide its definition in same class. It is access in derived class by using 'override' keyword to change its statements as requirement. Virtual function can not declare in abstract class and can be instantiate that base class which contain virtual method. All virtual methods may or may not be redefined derived class.

```
 public class VirtualClass    {        public virtual void Get()
        {
            Console.WriteLine('Base class');
        }    }
    public class Derived : VirtualClass
    {
    public override void Get()
    {
        Console.WriteLine('Derived class');
    }
    }
    class VirtualExp
    {
        static void Main(string[] arg)
        {
            VirtualClass virtu = new VirtualClass();
            virtu.Get();
            Derived der = new Derived();
            der.Get();        }    }
```

```
Output-  Base class
         Derived class
```

```

```

**Pure V**i**rtual function -** Pure virtual function is like a virtual function defines with 'virtual' keyword in the base class. It has no definition in same class. Pure virtual function is declare in base class with assigning 0(zero). In which class it declared that class is abstract class so that class can not be instantiate. All pure virtual function will must redefined in derived class to provide its body.

```
      abstract class PureVirtual
        {
             public abstract void Gett();
        }
        class Pure :PureVirtual
        {
        public override void Gett()
        {
            Console.WriteLine('Pure Virtual function is override');
        }
        }
        class VirtualTest
        {
            static void Main(string[] arg)
            {
            Pure p=new Pure();
                p.Gett();
            }
        }
```

**Output-** Pure Virtual function is override


---

Original Source: https://www.mindstick.com/forum/156711/what-are-virtual-and-pure-virtual-functions

Copyright © MindStick Software Pvt. Ltd. This Markdown version is provided for developers, AI systems, and offline reading.
