Examples of Inheritance in c++ Programming

0

Inheritance is one of the key features of Object-oriented programming in C++:

Example :

class Animal {

    // eat() function

    // sleep() function

};

class Dog : public Animal {

    // bark() funct ion

};

All Contributions

Templates With Multiple Parameters:

#include <iostream>
using namespace std;
// Class template with multiple and default parameters
template <class T, class U, class V = char>
class ClassTemplate {
   private:
    T var1;
    U var2;
    V var3;
   public:
    ClassTemplate(T v1, U v2, V v3) : var1(v1), var2(v2), var3(v3) {}  // constructor
    void printVar() {
        cout << "var1 = " << var1 << endl;
        cout << "var2 = " << var2 << endl;
        cout << "var3 = " << var3 << endl;
    }
};
int main() 
{
    // create object with int, double and char types
    ClassTemplate<int, double> obj1(7, 7.7, 'c');
    cout << "obj1 values: " << endl;
    obj1.printVar();
    // create object with int, double and bool types
    ClassTemplate<double, char, bool> obj2(8.8, 'a', false);
    cout << "\nobj2 values: " << endl;
    obj2.printVar();
    return 0;
}

Simple Calculator Using Class Templates:

#include <iostream>
using namespace std;
template <class T>
class Calculator {
   private:
    T num1, num2;
   public:
    Calculator(T n1, T n2) {
        num1 = n1;
        num2 = n2;
    }
    void displayResult() {
        cout << "Numbers: " << num1 << " and " << num2 << "." << endl;
        cout << num1 << " + " << num2 << " = " << add() << endl;
        cout << num1 << " - " << num2 << " = " << subtract() << endl;
        cout << num1 << " * " << num2 << " = " << multiply() << endl;
        cout << num1 << " / " << num2 << " = " << divide() << endl;
    }
    T add() { return num1 + num2; }
    T subtract() { return num1 - num2; }
    T multiply() { return num1 * num2; }
    T divide() { return num1 / num2; }
};
int main() 
{
    Calculator<int> intCalc(2, 1);
    Calculator<float> floatCalc(2.4, 1.2);
    cout << "Int results:" << endl;
    intCalc.displayResult();
    cout << endl
         << "Float results:" << endl;
    floatCalc.displayResult();
    return 0;
}

Class Templates:

#include <iostream>
using namespace std;
// Class template
template <class T>
class Number {
   private:
    // Variable of type T
    T num;
   public:
    Number(T n) : num(n) {}   // constructor
    T getNum() {
        return num;
    }
};
int main() 
{
    // create object with int type
    Number<int> numberInt(7);
    // create object with double type
    Number<double> numberDouble(7.7);
    cout << "int Number = " << numberInt.getNum() << endl;
    cout << "double Number = " << numberDouble.getNum() << endl;
    return 0;
}

virtual Function Demonstration:

#include <iostream>
#include <string>
using namespace std;
class Animal {
   private:
    string type;
   public:
    // constructor to initialize type
    Animal() : type("Animal") {}
    // declare virtual function
    virtual string getType() {
        return type;
    }
};
class Dog : public Animal {
   private:
    string type;
   public:
    // constructor to initialize type
    Dog() : type("Dog") {}
    string getType() override {
        return type;
    }
};
class Cat : public Animal {
   private:
    string type ;
   public:
    // constructor to initialize type
    Cat() : type("Cat") {}
    string getType() override {
        return type;
    }
};
void print(Animal* ani) {
    cout << "Animal: " << ani->getType() << endl;
}
int main() 
{
    Animal* animal1 = new Animal();
    Animal* dog1 = new Dog();
    Animal* cat1 = new Cat();
    print(animal1);
    print(dog1);
    print(cat1);
    return 0;
}

virtual Function:

#include <iostream>
using namespace std;
class Base {
   public:
    virtual void print() {
        cout << "Base Function" << endl;
    }
};
class Derived : public Base {
   public:
    void print() {
        cout << "Derived Function" << endl;
    }
};
int main() 
{
    Derived derived1;
    // pointer of Base type that points to derived1
    Base* base1 = &derived1;
    // calls member function of Derived class
    base1->print();
    return 0;
}

total contributions (20)

New to examplegeek.com?

Join us