Logo
Unit 13 – Polymorphism in C++

Polymorphism in C++

Duration: 5 minutes

Introduction

Hello Coders! Step into the dynamic world of Polymorphism in C++, where versatility and flexibility take center stage. Polymorphism, a cornerstone of object-oriented programming, allows a single interface to represent various underlying forms.

Understanding Polymorphism

Polymorphism is a core concept in object-oriented programming that allows objects of different types to be treated as objects of a common base type. This enables you to write more flexible and extensible code. In C++, polymorphism is achieved through virtual functions.

Here’s an example demonstrating polymorphism using virtual functions:

#include <iostream>
#include <iostream>
// Base class
class Animal {
public:
Animal(const std::string& n) : name(n) {}
// Virtual function
virtual void makeSound() const {
std::cout << name << " is making a generic animal sound." << std::endl;
}
private:
std::string name;
};
// Derived class 1
class Dogpublic Animal {
public:
Dog(const std::string& nconst std::string& b) : Animal(n), breed(b) {}
// Override the virtual function
void makeSound() const override {
std::cout << "Woof! Woof!" << std::endl;
}
private:
std::string breed;
};
// Another derived class
class Catpublic Animal {
public:
Cat(const std::string& nconst std::string& c) : Animal(n), color(c) {}
// Override the virtual function
void makeSound() const override {
std::cout << "Meow! Meow!" << std::endl;
}
private:
std::string color;
};
int main() {
// Create Animal, Dog, and Cat objects
Animal genericAnimal("Generic");
Dog myDog("Buddy""Golden Retriever");
Cat myCat("Whiskers""Tabby");
// Use polymorphism with pointers
Animal* ptrAnimal = &genericAnimal
ptrAnimal->makeSound();  // Calls base class function
ptrAnimal = &myDog
ptrAnimal->makeSound();  // Calls Dog's overridden function
ptrAnimal = &myCat
ptrAnimal->makeSound();  // Calls Cat's overridden function
return 0;
}

In this example, the makeSound function in the base class Animal is marked as virtual. The derived classes Dog and Cat override this function, allowing polymorphic behavior when calling makeSound through base class pointers.

Exercise: Use Polymorphism in Class Design

Now, let’s practice using polymorphism in class design.

Conclusion

Feel free to modify the Shape, Circle, and Square classes or create additional classes. This exercise will help you gain hands-on experience with polymorphism in

C++. Happy coding! Delving into the realm of Polymorphism in C++ empowers you to create adaptable and expressive code, enhancing the flexibility and maintainability of your software. Happy coding!

Next Tutorial: Basic Input/Output

5 minutes Minutes

Continue

Code on the Go with our Mobile App!

Unleash your coding potential anytime, anywhere!

Download Now!