VIRTUAL FUNCTIONS IN C++ TRB CSI › Programming with C++ › virtual functions

VIRTUAL FUNCTIONS IN C++

A virtual function is a member function in a base class declared using the virtual keyword and redefined in a derived class to achieve runtime polymorphism. Tamil mixed: Base class-ல் virtual keyword பயன்படுத்தி declare செய்யப்பட்டு, deriv…

Premium — locked Advanced 33 min 155 cards 47 programs 10 MCQs v2
This is a premium lesson. You can see the shape of every card — unlock to read them. Unlock

VIRTUAL FUNCTIONS IN C++ Virtual Function என்பது C++-இல் Runtime Polymorphism உருவாக்க பயன்படும் முக……

Premium This card is part of the premium lesson. Unlock
Definition

A virtual function is a member function in a base class declared using the virtual keyword and redefined in a……

Premium This card is part of the premium lesson. Unlock
Simple Explanation

ஒரு Base class: class Animal ……

Premium This card is part of the premium lesson. Unlock

இதுதான் Virtual Function-ன் ம……

Premium This card is part of the premium lesson. Unlock
Explanation
Why virtual function is needed

Normal function call compile time-ல் decide ஆகலாம். ஆனால் சில நேரங்களில் எந்த object function execute ஆக வேண்……

Premium This card is part of the premium lesson. Unlock
Explanation

எந்த sound() execute ஆக வேண்டும்? Dog என்றால் bark Cat எ……

Premium This card is part of the premium lesson. Unlock
Concept
Main concept

Virtual Function ↓ Function Overriding ↓ ……

Premium This card is part of the premium lesson. Unlock
Syntax
Derived class
Explanation
Program - without virtual function

முதலில் virtual இல்லாமல் என்ன……

Premium This card is part of the premium lesson. Unlock
Explanation

return 0; }…

Premium This card is part of the premium lesson. Unlock
Explanation
Why base class output?

Pointer declaration: Base *ptr; Pointer type: Base Function virtual இல்லை. அதனால் compiler pointer type-ஐ ப……

Premium This card is part of the premium lesson. Unlock
Explanation

return 0; }…

Premium This card is part of the premium lesson. Unlock
Explanation
Line explanation

Base Class class Base Parent class உருவாக்கப்படுகிறது. Virtual Function virtual void show() இங்கு: virtual co……

Premium This card is part of the premium lesson. Unlock
Explanation
Base pointer

Base *ptr; இது Base class poi……

Premium This card is part of the premium lesson. Unlock
Explanation
Derived object

Derived d; Derived object உரு……

Premium This card is part of the premium lesson. Unlock
Explanation
Pointing derived object

ptr = &d; இப்போது: Base point……

Premium This card is part of the premium lesson. Unlock
Explanation
Function call

ptr->show(); show() virtual என்பதால் runtime system actual ……

Premium This card is part of the premium lesson. Unlock
Flow

Program Start ↓ Create Derived object d ↓ Create Base pointer ptr ↓ ptr = &d ↓ ptr->show() ↓ Is show() virtua……

Premium This card is part of the premium lesson. Unlock
Explanation
Example

void show() without virtual. Dynamic Binding Function se……

Premium This card is part of the premium lesson. Unlock
Explanation
Virtual function and polymorphism

Polymorphism means: One interface, many forms. Anim……

Premium This card is part of the premium lesson. Unlock
Explanation

ஒரே statement. ஆனால் different outputs:……

Premium This card is part of the premium lesson. Unlock
Real Life Example
Real-time example

#include using namespace std; c……

Premium This card is part of the premium lesson. Unlock
Program
Next

Actual object: Cat Call:…

Premium This card is part of the premium lesson. Unlock
Explanation
Key point

ஒரே: Animal *ptr; pointer, பல derived ob……

Premium This card is part of the premium lesson. Unlock
Explanation
Function overriding

Virtual function பொதுவாக Function Overriding உடன் பயன்படுத்தப்படுகிறது. Base: virtual void show() Derived: vo……

Premium This card is part of the premium lesson. Unlock
Real Life Example
Example - overloading

void add(int a, int b); void add(double a……

Premium This card is part of the premium lesson. Unlock
Real Life Example
Example - overriding

class Base { public: virtual void show() { } }; clas……

Premium This card is part of the premium lesson. Unlock
Explanation
Override keyword

Modern C++-ல் derived class override ……

Premium This card is part of the premium lesson. Unlock
Program
Example
Explanation

இது compiler-க்கு: இந்த function Base class virtual function-ஐ override செய்ய வேண்டும் என்று தெரிவிக்கிறது. [……

Premium This card is part of the premium lesson. Unlock
Important
Important rule

Base function virtual என்றால் Derive……

Premium This card is part of the premium lesson. Unlock
Program
Example
Explanation

Derived::show() virtual behavior தொடரும……

Premium This card is part of the premium lesson. Unlock
Program
Example
Explanation

Call: A *ptr; C obj;…

Premium This card is part of the premium lesson. Unlock

Why? Actual object: C…

Premium This card is part of the premium lesson. Unlock
Explanation
Pure virtual function

Virtual Function-ன் very important ……

Premium This card is part of the premium lesson. Unlock
Program
Example
Explanation

= 0 என்பது pure virtual funct……

Premium This card is part of the premium lesson. Unlock
Explanation
Pure virtual function meaning

Base class: virtual void draw() = 0; என்று சொல்வது: Eve……

Premium This card is part of the premium lesson. Unlock
Explanation
Abstract class

ஒரு class-ல் குறைந்தது ஒரு pure vir……

Premium This card is part of the premium lesson. Unlock
Program
Example
Explanation

Shape is abstract class.…

Premium This card is part of the premium lesson. Unlock
Explanation
Can we create abstract class object?

No. Wrong: Shape s; Abstract class object direc……

Premium This card is part of the premium lesson. Unlock
Program
Pure virtual function program
Explanation

Shape *ptr = &c;…

Premium This card is part of the premium lesson. Unlock
Explanation

return 0; }…

Premium This card is part of the premium lesson. Unlock
Explanation
Virtual destructor

Virtual functions topic-ல் மிகவும் important interview concept: Virtual Destructor Suppose: Base *ptr = new D……

Premium This card is part of the premium lesson. Unlock
Explanation

delete ptr; return 0; }…

Premium This card is part of the premium lesson. Unlock

Correct destruction sequence.…

Premium This card is part of the premium lesson. Unlock
Explanation
Why virtual destructor?

When deleting through base pointer: delete ptr; Runtime ……

Premium This card is part of the premium lesson. Unlock
Explanation
Can constructor be virtual?

No. C++ constructor cannot be virtual. Reason: Object construction இன்னும் co……

Premium This card is part of the premium lesson. Unlock
Explanation
Can destructor be virtual?

Yes. virtual ~Base() is valid……

Premium This card is part of the premium lesson. Unlock
Explanation
Can static function be virtual?

No. A static member function belongs to class, not to a particular object……

Premium This card is part of the premium lesson. Unlock
Explanation
Can friend function be virtual?

A friend function is not a member function. Virtual function mus……

Premium This card is part of the premium lesson. Unlock
Explanation
Can global function be virtual?

No. Virtual functions are mem……

Premium This card is part of the premium lesson. Unlock
Explanation
Virtual function rules

Important rules: Virtual function must be a class member function. It is declared using virtual in base class……

Premium This card is part of the premium lesson. Unlock
Explanation
Base reference with virtual function

Virtual function pointer மட்டும் அ……

Premium This card is part of the premium lesson. Unlock
Program
Example
Explanation

Base &ref = d; ref.show(); re……

Premium This card is part of the premium lesson. Unlock
Program
Both support virtual dispatch
Program
and
Important
Object slicing - important

Suppose: Derived d; Base b = d; இங்கு object copy செய்வதால் derived-specific part slice ஆகலாம……

Premium This card is part of the premium lesson. Unlock
Real Life Example
Real-life example - payment

#include using namespace std; ……

Premium This card is part of the premium lesson. Unlock

Runtime Polymorphism

Explanation

Different objects different b……

Premium This card is part of the premium lesson. Unlock

Extensibility

Explanation

New derived classes add செய்வ……

Premium This card is part of the premium lesson. Unlock

Flexible Design

Explanation

Base interface மூலம் differen……

Premium This card is part of the premium lesson. Unlock

Code Reusability

Explanation

Common interface reuse செய்யல……

Premium This card is part of the premium lesson. Unlock

Maintainability

Explanation

Large OOP systems-ல் clean ar……

Premium This card is part of the premium lesson. Unlock
Explanation
Disadvantages

Virtual function dispatch-க்கு small runtime overhead இருக்கலாம். Object may also need i……

Premium This card is part of the premium lesson. Unlock
Explanation
Vtable and vptr

Exam/interview level-ல் virtual functions எப்படி internally work ஆகும் என்பதை அறிந்திருக்கலாம். Many C++ impl……

Premium This card is part of the premium lesson. Unlock
Important

C++ standard itself implementation must use an actual ……

Premium This card is part of the premium lesson. Unlock
Common Mistake
Common error 1

Base function virtual இல்லாமல் runtime poly……

Premium This card is part of the premium lesson. Unlock
Common Mistake
Common error 2

Function signature mismatch. Base: virtual void show(in……

Premium This card is part of the premium lesson. Unlock
Common Mistake
Common error 3

Abstract class object உருவாக்குவது. Wrong: ……

Premium This card is part of the premium lesson. Unlock
Common Mistake
Common error 4

Destructor virtual செய்யாமல் base pointer மூலம் de……

Premium This card is part of the premium lesson. Unlock
Memory Trick

VIRTUAL ↓ RUNTIME ↓ ACTUAL OBJECT ↓ DERIVED FUN……

Premium This card is part of the premium lesson. Unlock
MCQ

Virtual function is used to a……

Premium This card is part of the premium lesson. Unlock
MCQ

Which keyword is used to decl……

Premium This card is part of the premium lesson. Unlock
MCQ

Virtual function binding occu……

Premium This card is part of the premium lesson. Unlock
MCQ

Which concept works with virt……

Premium This card is part of the premium lesson. Unlock
MCQ

Virtual function should norma……

Premium This card is part of the premium lesson. Unlock
MCQ

A pure virtual function conta……

Premium This card is part of the premium lesson. Unlock
MCQ

A class containing a pure vir……

Premium This card is part of the premium lesson. Unlock
MCQ

Can constructor be virtual?…

Premium This card is part of the premium lesson. Unlock
MCQ

Can destructor be virtual?…

Premium This card is part of the premium lesson. Unlock
MCQ

Which supports runtime polymorphism……

Premium This card is part of the premium lesson. Unlock
Program
Exam program
Explanation

return 0; }…

Premium This card is part of the premium lesson. Unlock
Interview Point

What is a virtual function? A member function declared with virtual in a base class……

Premium This card is part of the premium lesson. Unlock
Interview Point

What is late binding? Function cal……

Premium This card is part of the premium lesson. Unlock
Interview Point

Difference between virtual and pure virtual? virtual void show() { } Vi……

Premium This card is part of the premium lesson. Unlock
Important

Remember these four lines: virtual ↓ overriding ↓ base pointer/ref……

Premium This card is part of the premium lesson. Unlock
Practice

Write programs using virtual functions for: Animal → Dog, Cat Shape → Circle, Rectangl……

Premium This card is part of the premium lesson. Unlock
Summary

Virtual Function | ├── Declared using virtual | ├── Base class member function | ├── Overridden in derived cl……

Premium This card is part of the premium lesson. Unlock
Text size
17px
Theme
Contents
Print / PDF
Program