cpp Inheritance

Published on: 08 February 2025

5. Aim: Construct a program that demonstrates implementation of Inheritance - Single and Multilevel

Practice Exercise 8: To write a C++ program to demonstrate single inheritance by calculating the density and relative density of a fluid.

Code:

#include <iostream>
using namespace std;

class Density
{
public:
    float mass;
    float volume;

    Density(float m, float v) : mass(m), volume(v) {}

    float mDensity()
    {
        return mass / volume;
    }
};

class RelativeDensity : public Density
{
public:
    float refDensity;

    RelativeDensity(float m1, float v1, float r) : Density(m1, v1), refDensity(r) {}

    float rDensity()
    {
        float density = mDensity();
        return density / refDensity;
    }
};

int main()
{
    RelativeDensity rd(50, 20, 1000);
    cout << "Relative Density of Fluid: " << rd.rDensity() << endl;
    return 0;
}

Practice Exercise 9: Write a C++ program to demonstrate multilevel inheritance by calculating the density, relative density, and weight of a fluid.

Code:

#include <iostream>
using namespace std;

class Density
{
public:
    float mass;
    float volume;

    Density(float m, float v) : mass(m), volume(v) {}

    float mDensity()
    {
        return mass / volume;
    }
};

class RelativeDensity : public Density
{
public:
    float refDensity;

    RelativeDensity(float m1, float v1, float r) : Density(m1, v1), refDensity(r) {}

    float rDensity()
    {
        return mDensity() / refDensity;
    }
};

class Weight : public RelativeDensity
{
public:
    float gravity;

    Weight(float m1, float v1, float r, float g) : RelativeDensity(m1, v1, r), gravity(g) {}

    float fluidWeight()
    {
        return rDensity() * refDensity * volume * gravity;
    }
};

int main()
{
    Weight w(50, 20, 1000, 9.81);
    cout << "Weight of Fluid: " << w.fluidWeight() << " N" << endl;
    return 0;
}

6. Aim: Construct a program that demonstrates implementation of Inheritance - Multiple, Hierarchical and Hybrid.

Practice Exercise 10: Write a C++ program to demonstrate multiple inheritance by calculating the density, relative density, and weight of a fluid.

Code:

#include <iostream>
using namespace std;

class Density
{
public:
    float mass;
    float volume;

    Density(float m, float v) : mass(m), volume(v) {}

    float mDensity()
    {
        return mass / volume;
    }
};

class RelativeDensity
{
public:
    float refDensity;

    RelativeDensity(float r) : refDensity(r) {}

    float rDensity(float density)
    {
        return density / refDensity;
    }
};

class Weight : public Density, public RelativeDensity
{
public:
    float gravity;

    Weight(float m1, float v1, float r, float g) : Density(m1, v1), RelativeDensity(r), gravity(g) {}

    float fluidWeight()
    {
        float density = mDensity();
        return rDensity(density) * refDensity * volume * gravity;
    }
};

int main()
{
    Weight w(50, 20, 1000, 9.81);
    cout << "Weight of Fluid: " << w.fluidWeight() << " N" << endl;
    return 0;
}

Practice Exercise 11: Write a C++ program to demonstrate hierarchical inheritance by calculating the density, relative density, and weight of a fluid.

Code:

#include <iostream>
using namespace std;

class Density
{
public:
    float mass;
    float volume;

    Density(float m, float v) : mass(m), volume(v) {}

    float mDensity()
    {
        return mass / volume;
    }
};

class RelativeDensity : public Density
{
public:
    float refDensity;

    RelativeDensity(float m1, float v1, float r) : Density(m1, v1), refDensity(r) {}

    float rDensity()
    {
        return mDensity() / refDensity;
    }
};

class Weight : public Density
{
public:
    float gravity;

    Weight(float m1, float v1, float g) : Density(m1, v1), gravity(g) {}

    float fluidWeight()
    {
        return mDensity() * volume * gravity;
    }
};

int main()
{
    RelativeDensity rd(50, 20, 1000);
    Weight w(20, 10, 9.81);
    cout << "Relative Density: " << rd.rDensity() << endl;
    cout << "Weight of Fluid: " << w.fluidWeight() << " N" << endl;

    return 0;
}

Practice Exercise 12: Write a C++ program to demonstrate hybrid inheritance by calculating the density, relative density, and weight of a fluid.

Code:

#include <iostream>
using namespace std;

class Density {
protected:
    float mass;
    float volume;

public:
    Density(float m, float v) : mass(m), volume(v) {}

    float mDensity() {
        return mass / volume;
    }
};

class RelativeDensity : virtual public Density {
protected:
    float refDensity;

public:
    RelativeDensity(float m, float v, float r) : Density(m, v), refDensity(r) {}

    float rDensity() {
        return mDensity() / refDensity;
    }
};

class Weight : virtual public Density {
protected:
    float gravity;

public:
    Weight(float m, float v, float g) : Density(m, v), gravity(g) {}

    float fluidWeight() {
        return mDensity() * volume * gravity;
    }
};

class Fluid : public RelativeDensity, public Weight {
public:
    Fluid(float m, float v, float r, float g) : Density(m, v), RelativeDensity(m, v, r), Weight(m, v, g) {}

    void display() {
        cout << "Density: " << mDensity() << " kg/m^3" << endl;
        cout << "Relative Density: " << rDensity() << endl;
        cout << "Weight of Fluid: " << fluidWeight() << " N" << endl;
    }
};

int main() {
    Fluid fluid(50, 20, 1000, 9.81);
    fluid.display();
    return 0;
}

References

There may be some AI Generated content in this article used for demonstration purposes.