Polymorphism in C++ | OOP Tutorial with Real-Life Examples

Polymorphism in C++ | OOP Tutorial with Real-Life Examples

Polymorphism is one of the four core concepts of Object-Oriented Programming (OOP), along with encapsulation, inheritance, and abstraction. The term polymorphism is derived from two Greek words; poly (many) and morph (forms). In programming, it means one name, many forms. In simple words, polymorphism allows a single function, operator, or object to behave differently based on the context. This makes our code flexible, reusable, and easy to extend.

Understanding Polymorphism

Think about the word “drive”.
A car drives, a bike drives, and a bus drives. The action “drive” is the same, but the behavior is different depending on the object. This is polymorphism; the same operation acting differently for different entities.

Similarly, in a company, the manager, designer, and developer all respond to the command “Work!”, but each performs a different task. This is how polymorphism works in real life and also in programming.

What Is Polymorphism in C++

Polymorphism in C++ is the ability of a function, operator, or object to take many forms. It allows the same function name to perform different tasks depending on the type of object or the number of parameters. Polymorphism provides the foundation for dynamic behavior in software, allowing us to write programs that can adapt at runtime.

Types of Polymorphism

Types of Polymorphism in C++

C++ supports two main types of polymorphism:

TypeDescriptionExample
Compile-Time Polymorphism (Static)Decided by the compiler during compilation.Function Overloading, Operator Overloading
Run-Time Polymorphism (Dynamic)Decided during program execution.Virtual Functions / Function Overriding

Compile-Time (Static) Polymorphism

Compile-time polymorphism means the decision about which function to call is made before the program runs. This is achieved using function overloading and operator overloading.

Function overloading

Function Overloading Example

#include <iostream>
using namespace std;

class Math {
public:
    int add(int a, int b) {
        return a + b;
    }

    double add(double a, double b) {
        return a + b;
    }

    int add(int a, int b, int c) {
        return a + b + c;
    }
};

int main() {
    Math m;
    cout << "Sum of two integers: " << m.add(2, 3) << endl;
    cout << "Sum of two doubles: " << m.add(2.5, 3.8) << endl;
    cout << "Sum of three integers: " << m.add(1, 2, 3) << endl;
    return 0;
}

Operator Overloading Example

Operator Overloading
#include <iostream>
using namespace std;

class Plot {
    int length, width;

public:
    // Constructor
    Plot(int l = 0, int w = 0) {
        length = l;
        width = w;
    }

    // Operator overloading (+)
    Plot operator + (Plot p) {
        Plot temp;
        temp.length = length + p.length;
        temp.width  = width + p.width;
        return temp;
    }

    // Display function
    void display() {
        cout << "Plot: " << length << " x " << width << endl;
        cout << "Area: " << length * width << endl;
    }
};

int main() {
    // Create two plots
    Plot p1(10, 5);
    Plot p2(6, 3);

    // Add plots using overloaded operator
    Plot p3 = p1 + p2;

    // Display result
    cout << "Combined Plot:\n";
    p3.display();

    return 0;
}

Run-Time (Dynamic) Polymorphism

Run-time polymorphism means the function that gets executed is determined at runtime, not compile time. This is achieved through function overriding using virtual functions and pointers/references to base classes.

Function Overriding Example

#include <iostream>
using namespace std;

class Animal {
public:
    virtual void sound() {
        cout << "Animal makes a sound" << endl;
    }
};

class Dog : public Animal {
public:
    void sound() {
        cout << "Dog barks" << endl;
    }
};

class Cat : public Animal {
public:
    void sound() {
        cout << "Cat meows" << endl;
    }
};

int main() {
    Animal* a;   // Base class pointer
    Dog d;
    Cat c;

    a = &d;
    a->sound();   // Calls Dog’s sound()

    a = &c;
    a->sound();   // Calls Cat’s sound()

    return 0;
}

Why Do We Use Pointers in Polymorphism?

When we call a virtual function using an object (e.g., obj.sound()), the compiler already knows its type, so it doesn’t check at runtime. But when we call it through a base class pointer or reference, C++ checks which object the pointer actually refers to and calls the correct version. Hence, pointers or references are used to achieve real dynamic behavior.

Difference Between Function Overloading and Function Overriding

FeatureFunction OverloadingFunction Overriding
TypeCompile-time polymorphismRun-time polymorphism
ParametersMust differMust be same
InheritanceNot requiredRequired
KeywordNo keyword neededUses virtual keyword
Execution TimeDecided at compile timeDecided at runtime

Real-World Example: Draw Function

#include <iostream>
using namespace std;

class Shape {
public:
    virtual void draw() {
        cout << "Drawing a shape" << endl;
    }
};

class Circle : public Shape {
public:
    void draw() {
        cout << "Drawing a circle" << endl;
    }
};

class Rectangle : public Shape {
public:
    void draw() {
        cout << "Drawing a rectangle" << endl;
    }
};

int main() {
    Shape* shape;
    Circle c;
    Rectangle r;

    shape = &c;
    shape->draw();

    shape = &r;
    shape->draw();

    return 0;
}

Output:

Drawing a circle
Drawing a rectangle

Advantages of Polymorphism

  1. Code Reusability: Once a base class or function is written, it can be reused by derived classes without rewriting code. This reduces redundancy and saves development time.
  2. Flexibility: Polymorphism allows one interface to handle multiple types of behavior. For example, a single pointer of a base class can call different functions depending on which derived object it points to.
  3. Scalability: New classes and behaviors can be added easily without modifying existing code. This makes software easier to extend and maintain.
  4. Readability: Code becomes more organized and easier to understand since similar actions are grouped under the same interface or function name.

Key Points to Remember

  • Polymorphism = One interface, many implementations.
  • Function Overloading and Operator Overloading → Compile-time polymorphism.
  • Function Overriding using virtual → Run-time polymorphism.
  • Use base class pointers or references to achieve dynamic behavior.
  • Destructors in base classes should be declared virtual to ensure proper cleanup.
AspectCompile-TimeRun-Time
How it happensFunction/Operator OverloadingVirtual Functions
Decision TimeBefore program runsDuring program execution
KeywordNonevirtual
Inheritance neededNoYes
Binding TypeEarly bindingLate binding

107 thoughts on “Polymorphism in C++ | OOP Tutorial with Real-Life Examples”

  1. Увлекаешься охотой? продажа товаров для охоты предоставляет большой ассортимент для охоты, путешествий и outdoor-активностей. В каталоге собраны специализированное снаряжение, одежда, обувь, товары для наблюдения, полезные аксессуары и товары для активного отдыха. Подбирайте нужное снаряжение, сравнивайте характеристики и покупайте продукцию через сайт. Понятная навигация поможет собрать комплект для охоты или отдыха на природе.

  2. Сериал в сети смотреть сериал сверхъестественное с хорошей картинкой можно прямо на сайте. Полная коллекция сезонов и эпизодов доступны для просмотра. Наблюдайте за историей братьев Винчестеров, которые защищают людей от сверхъестественных угроз. На протяжении сериала герои сталкиваются с демонами, ангелами, духами и другими существами. Ангел Кастиэль присоединяется к героям, а новые противники угрожают героям. Выбирайте интересующий эпизод и погружайтесь в атмосферу мистического сериала.

  3. Нужно иптытание средств измерений? свидетельство об утверждении типа средств измерений организация испытаний, подготовка документов, получение свидетельства и внесение СИ в Госреестр. Сопровождение процедуры на всех этапах с учетом требований законодательства.

  4. Instead of hunting for random inbox sellers on chats, many buyers simply keep the page https://npprteamshop.com/en/email-accounts/ bookmarked for their next registration cycle. The catalog maintained by NPPR Team Shop shows provider, creation period, geo and the format of the credentials delivered, with 2FA setup left to the buyer for full control. Delivery is automated after payment, quantities for team projects are negotiable, and the guarantee window is described directly in each listing.

  5. Перекупка старых профилей на форумах почти всегда заканчивается сбросом сессии, поэтому разумнее купить аккаунт твич в проверенном каталоге: купить аккаунт твич. NPPRTeamShop отдаёт полный набор данных для входа вместе с cookies и доступом к привязанной почте, что позволяет сразу подключить 2FA под себя и не терять контроль над каналом. Для оптовых сеток доступны партии под один гео, а условия замены и консультации по фарму обговариваются до оплаты.

  6. Рассмотреть экспертную помощь аутсорсинг по охране труда для офиса. Специалисты компании контролируют комплекс обязательных мероприятий. В состав услуги входит организация обучения. Все материалы актуализируются исходя из специфики предприятия. Когда требуется дополнительная помощь отдельные процессы можно полностью делегировать экспертам. Привлечение специалистов позволяет получать профессиональные консультации. Представителю организации не потребуется вести весь объем документации. Уточните индивидуальный расчет с учетом количества сотрудников. Оставьте заявку в удобное время и выберите подходящий формат сопровождения.

  7. Удобно через браузер радио дача прямой эфир в любое время. В эфире можно услышать музыкальные программы. Включайте трансляцию на работе. Следите за программами с планшета в несколько кликов.

  8. A helpful website healthfare covering health, balanced nutrition, and daily wellness. Users will discover informative publications on everyday nutrition, along with useful recommendations. Additional content includes product overviews. Special attention is given to healthier routines, diet and nutrition, daily activity, self-care, and general wellness.

  9. Выбрать услуги https://autsorsing-ohrany-truda-msk.ru под ключ. Эксперты по охране труда контролируют текущее сопровождение. В процессе сопровождения включается сопровождение проверок. Все материалы проверяются под конкретные условия работы. В случае нехватки внутренних ресурсов определенный объем работ можно передать внешним специалистам. Внешнее сопровождение помогает контролировать выполнение требований. Представителю организации не потребуется контролировать каждый этап без поддержки специалистов. Уточните перечень услуг исходя из задач компании. Получите предложение онлайн и выберите подходящий формат сопровождения.

  10. Быстро через браузер https://radio-dacha-slushat.ru без регистрации. Во время эфира транслируются песни разных лет. Начинайте прослушивание на работе. Слушайте музыку с компьютера в несколько кликов.

  11. Выгодно в любое время каталог джинсов на любой стиль. Среди представленных моделей можно найти классические джинсы. Подбирайте вариант для своего гардероба под свой стиль. Учитывайте цвет. Заказывайте джинсы онлайн и получайте покупку с доставкой.

  12. Select reliable payment gateway for games for accepting payments. Payment system provides tools for accepting online payments. Depending on configuration available automated payment processing. Setup is performed using ready-made tools. Before choosing worth evaluating security measures. Calculate individual terms for the required tasks. Book a consultation via the website and learn the integration procedure.

  13. A helpful website https://healthfare.ca/ covering health, balanced nutrition, and daily wellness. The website features helpful content on balanced nutrition, along with everyday wellness tips. Visitors can also access product reviews. Particular focus is placed on healthier routines, diet and nutrition, exercise and fitness, wellness routines, and everyday health.

  14. Откройте познавательный https://vladimir-courses.ru с полезными полезной информацией. На страницах ресурса публикуются полезные сведения. Читайте полезные обзоры и узнавайте новое.

  15. Загляните на актуальный https://mulino58.ru для поиска полезные материалы. В разделах можно найти полезные обзоры. Читайте актуальные публикации и знакомьтесь с интересными темами.

  16. Хотите найти караоке-клуб https://karaokespb.vercel.app для корпоративного отдыха. В подборке собраны клубы с музыкальными программами. Проверьте условия бронирования. Для выходного вечера легко найти вариант под ваш формат отдыха. Планируете музыкальную вечеринку? Забронируйте понравившийся вариант и планируйте вечер заранее.

  17. Узнаем особенностями https://volga.news/805142/article/chem-frontalnyj-pogruzchik-otlichaetsya-ot-drugoj-skladskoj-i-stroitelnoj-tehniki.html и особенностями эксплуатации. Эта техника применяются на строительных объектах. Главным элементом техники служит ковш, который позволяет загружать грунт. При выборе модели обычно учитывают мощность двигателя. Подробное описание об устройстве, характеристиках и применении техники можно найти в статье.

  18. Если вы интересуетесь стилем https://russkajakrasota.ru поможет найти интересные статьи. На сайте разбирают модные тенденции. Стоит почитать практические рекомендации. Просматривайте интересующие материалы и находите новые идеи для ухода, стиля и повседневной жизни.

  19. Если вы обустраиваете дом https://castor-mebel.ru может быть полезен интересные материалы. На сайте публикуются строительные решения. Интересно посмотреть на что обратить внимание при ремонте. Изучайте материалы и находите идеи для обустройства комфортного интерьера.

  20. Когда хочется узнать больше о ремонтом https://mebel-lotos18.ru может пригодиться полезным статьям. В разделах рассматриваются строительные решения. Полезно изучить какие решения подходят для дома. Изучайте подходящие материалы и находите практические идеи для ремонта и обустройства жилья.

  21. Когда вы ищете аренду жилья https://ru-nedvizhimost.ru открывает доступ к вариантам жилья. В базе собраны дома. Перед покупкой полезно сравнить характеристики объекта. Просматривайте подходящие объявления и находите варианты недвижимости под свои задачи.

  22. Попробуйте подходящее лучшие казино польша для игры. Откройте слотам и изучите доступные режимы. В игровом разделе доступны live-развлечения. Готовы начать? Откройте игровой раздел. Перед регистрацией проверьте правила, возрастные требования и доступность сервиса в вашем регионе. Играйте ответственно.

  23. Povjerite strucnjacima profesionalnu ovaj portal prije pocetka gradnje. Inzenjeri ce sprovesti neophodna mjerenja. Prije pocetka radova odreduju se granice objekta. Planirate gradnju? Kontaktirajte strucnjake i dobicete rjesenje za Vas zadatak.

  24. Найдите интересующее лучшие казино онлайн и переходите к доступным играм. Получите доступ к слотам и изучите доступные режимы. На платформе вас ждут популярные игры. Хотите попробовать? Выбирайте подходящую игру. Перед регистрацией проверьте правила, возрастные требования и доступность сервиса в вашем регионе. Играйте ответственно.

  25. Для тех, кому нужно усилить нанять телохранителя для личной безопасности. Профессиональная охрана помогают организовать охранное присутствие группы. При выборе специалистов стоит уточнить опыт работы. Требуется сопровождение? Закажите консультацию и обсудите подходящий формат охраны.

  26. Посетите сайт клиника александра дзидзария – это современная цифровая клиника мужского и женского здоровья. Вы сможете сдавать комплексные чекапы, получайте точные результаты онлайн, онлайн консультации от специалистов различного профиля. Запись проводится онлайн, а работу осуществляем по Москве и всем регионам России. Узнайте подробнее на сайте.

  27. Посетите сайт Центр АвтоУслуги перерегистрация машины и вы найдете решение сложных вопросов по регистрационным действиям с автомобильным транспортом. Поставим на учет любое транспортное средство. Без очередей и без вашего присутствия в МРЭО. Сохраним за Вами старые номера. И поможем повесить их на новую машину. Помощь в быстром восстановлении или оформлении ПТС, СТС и прав. Прочие услуги на сайте.

  28. Ищете SMM и таргет в Алматы? Посетите https://kosincev.kz и вы найдете качественные услуги. У нас целая система: матрица контента, точная настройка рекламы и юнит-экономика в одной таблице. Вы заранее видите, сколько принесёт каждый вложенный тенге. Без слива бюджета на рекламу вслепую!

  29. Entdecke Replica Uhren https://uhrende.to nach Marke, Modellreihe und Stil. Alle Replica Rolex Modelle fur 269 € – mit kostenlosem Versand nach Deutschland und Zahlung per Nachnahme.

  30. Лучшее лечение зубов https://nova-51.ru/lechenie-zubov-murmansk по демократичной цене в Мурманске. Точная диагностика и консультация, полное обезболивание, высокая эстетика и гарантия на лечение зубов!

  31. Комфортная и доступная стоматология https://nova-51.ru в Мурманске. NOVA – современная стоматология по демократичным ценам! Широкий перечень услуг, в том числе и детская стоматология. Консультация, лечение, гигиена, имплантация, протезирование, исправление прикуса.

  32. Лучшая имплантация зубов https://nova-51.ru/implantatsiya-zubov-murmansk в Мурманске. Доступная, безболезненная, быстрая и с гарантией! Восстановим отсутствующие зубы. У нас имплантация зубов о которой Вы мечтали.

  33. An inside look at the retail Forex business https://showmeforex.com. Where broker revenue actually comes from. How clients are acquired, evaluated, and categorized. Which costs are disclosed in the fine print that no one reads. What kind of valuation is placed on a customer. And what happens to your data after your account is drained. No signals, no broker rankings, no affiliate links—nothing for sale.

  34. An automated trading notebook: https://smartforexarbitrage.com. A look at how robots, models, and arbitrage loops are actually built, their costs, and the conditions under which they stop working. No signals, no affiliate links, and no sales-driven rankings. Automated trading—covering robots, AI models, execution, and arbitrage—with the underlying arithmetic fully disclosed.

  35. We offer unique https://artificialforex.com information on Forex and crypto—including strategy replication you won’t find anywhere else—and guaranteed returns on your future trades. We provide access to trade allocation models, crypto lending counterparties, and the underlying calculations for both. No affiliate links, no signals, and no paid rankings.

  36. At https://gnforexacademy.com, we teach Forex and crypto properly. We offer a structured curriculum designed for those starting from scratch. Each lesson is built around a single concept, a practical example, and a chart you can actually use. No signals, no affiliate links, and no promises of guaranteed returns.

  37. Нужна консультация юриста? онлайн юрист в Балашихе отличная возмодность получить ответы на правовые вопросы. Консультация доступна по вопросам долгов, банковских споров, семейных, трудовых, жилищных и других правовых ситуаций.

  38. Когда вы выбираете жилые комплексы https://zhkkvartiradom.ru может быть полезен полезным сведениям о ЖК. В разделах можно изучить особенности жилых комплексов. При выборе объекта полезно сравнить сроки сдачи. Изучайте материалы и находите полезную информацию для выбора подходящего жилья.

  39. Когда вы выбираете жилые комплексы https://novostroykatoday.ru может пригодиться материалам о жилых комплексах. На страницах портала публикуются тенденции рынка недвижимости. При сравнении новостроек важно обратить внимание на расположение. Сравнивайте материалы и получайте больше информации о рынке новостроек.

  40. Сравниваете квартиру https://zhksalezhilie.ru чтобы сравнить варианты. В публикациях освещаются новостройках и ЖК. При выборе объекта стоит оценить качество окружающей среды. Для покупателей первой квартиры часто важны район. Сравнивайте материалы и используйте полученную информацию при самостоятельном выборе недвижимости.

  41. Выбираете новостройку https://zhksaleflat.ru перед принятием решения. Среди представленной информации можно изучить особенностях новостроек. Во время поиска недвижимости полезно сопоставить площадь квартиры. Инвесторам могут быть интересны перспективы развития территории. Анализируйте информацию и определяйте подходящие критерии выбора.

  42. Если интересуют новостройки https://novostroykatoday.ru будет полезен актуальной информации. На страницах портала рассматриваются особенности новых ЖК. При сравнении новостроек стоит сравнить инфраструктуру. Изучайте материалы и получайте больше информации о рынке новостроек.

  43. Когда вы выбираете жилые комплексы https://zhkkvartiradom.ru поможет найти материалам о недвижимости. В разделах публикуются особенности жилых комплексов. Перед покупкой важно обратить внимание на расположение. Просматривайте материалы и находите полезную информацию для выбора подходящего жилья.

  44. Планируете приобрести частный дом https://zhksalehouse.ru подходящий по параметрам. При поиске недвижимости стоит учитывать площадь участка. В тематических материалах рассматриваются благоустройство территории. При выборе объекта особенно важны близость к инфраструктуре. Анализируйте информацию и формируйте собственное представление о подходящем объекте недвижимости.

  45. Рассматриваете новый дом https://zhksaledom.ru с подходящими характеристиками. При сравнении объектов важно проверить планировку. В тематических разделах можно узнать благоустройство участка. Покупателям загородного жилья стоит отдельно учитывать количество комнат. Сравнивайте информацию и находите полезные сведения для осознанного выбора дома.

  46. Начали поиск квартиру https://kupitkvartiruzdes.ru с подходящей планировкой. Тем, кто переезжает стоит учитывать район. Когда приходится выбирать между объектами полезно сопоставить площадь. Помимо основных характеристик не стоит забывать о документах. Среди представленной информации разбираются особенности рынка недвижимости. Проверяйте информацию, сопоставляйте характеристики и формируйте собственное представление о подходящем объекте.

  47. PerpFuse https://www.perpfuse.com is a real-time perpetual futures analytics platform for crypto traders. Compare funding rates, open interest, liquidity, spreads, execution costs, and cross-exchange arbitrage opportunities across leading CEX and DEX markets

  48. Современная разработка сайтов https://volt-site.ru на Next.js и внедрение AI-агентов позволяет создавать быстрые веб-приложения, интегрировать умных чат-ботов и автоматизировать бизнес-процессы с идеальной SEO-оптимизацией.

  49. Рассмотрите уютный салон мебели в москве для создания современного интерьера. В коллекциях представлены гостиные. Выбирайте отделку и создавайте интерьер с учетом особенностей помещения. Нужна мебель из Италии? Откройте каталог и подберите мебель для своего интерьера.

  50. Проведите организованный демонтаж многоэтажных зданий с учетом особенностей объекта. Демонтаж выполняется при разборке аварийных конструкций. После обследования конструкции формируется план демонтажа.

  51. Попробуйте найти по заданным параметрам https://realty.yandex.ru/offer/3708640227304103425/ с подходящей планировкой. При выборе обратите внимание коммунальные платежи. Для комфортного проживания удобно отфильтровать неподходящие объявления. Для одних арендаторов важнее развитая инфраструктура, а другим выбирают площадь.

  52. Разберитесь при исследовании кракен ссылка с точки зрения кибербезопасности и анонимных сетей. Аналитические публикации рассматривают риски мошенничества.

  53. Before choosing create ai girlfriend, it helps to compare conversation memory, customization controls, pricing limits, and deletion options. The comparison should consider mobile and web access separately because controls, notifications, and payment options may differ. No single feature should outweigh clear consent controls, straightforward billing, and the ability to leave easily.

  54. The strongest way to assess ai girlfriend is to look beyond screenshots and examine privacy, transparency, and everyday usability. The most informative tests use the same prompts across services and compare consistency, latency, customization, and safety responses. A written checklist makes it easier to compare services consistently and notice hidden limitations before paying.

Leave a Reply

Your email address will not be published. Required fields are marked *