0% found this document useful (0 votes)
2 views8 pages

Inheritance Programs

The document provides various examples of inheritance in C++, including single, multiple, hybrid, hierarchical, multilevel, and ambiguous inheritance. It also covers concepts such as copy constructors, function overloading, function overriding, and virtual functions. Each section includes code snippets demonstrating the respective inheritance type or concept.

Uploaded by

Vatsal Gupta
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views8 pages

Inheritance Programs

The document provides various examples of inheritance in C++, including single, multiple, hybrid, hierarchical, multilevel, and ambiguous inheritance. It also covers concepts such as copy constructors, function overloading, function overriding, and virtual functions. Each section includes code snippets demonstrating the respective inheritance type or concept.

Uploaded by

Vatsal Gupta
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Inheritance Programs

1. Single Inheritance
#include<iostream>
using namespace std;
class A
{
public:
class Account
{
public:
float salary=10000;
};
class Programmer:public Account
{
public:
float bonus=1000;
};
};
class B
{
public:
class Animal
{
public:
void eat()
{
cout<<"eat"<<endl;
}
};
class Dog:public Animal
{
public:
void bark()
{
cout<<"bark"<<endl;
}
};
};
int main()
{A::Programmer p1;
B::Dog d1;
cout<<"salary:"<<[Link]<<"\nbonus:"<<[Link]<<"\n";
[Link]();
[Link]();
}

2. Single Inheritance 2
Sol-
#include <iostream>
using namespace std;
class A
{
int a = 4;
int b = 5;
public:
int mul()
{
int c=a*b;
return c;
}
};
class B:private A
{
public:
void display()
{
int result=mul();
cout<<"Multiplication of a and b is:"<<result<<endl;
}
};
int main()
{
B b;
[Link]();
return 0;
}

3. Multiple Inheritance
Sol-
#include<iostream>
using namespace std;
class AA
{
public:
class A
{
protected:
int a;
public:
void getdata_a(int n)
{
a=n;
}
};
class B
{
protected:
int b;
public:
void getdata_b(int n)
{
b=n;
}
};
};
class BB:public AA
{
public:
class C:public A,public B
{
public:
void displaywholedata()
{
cout<<"value of a is:"<<a<<endl;
cout<<"value of b is:"<<b<<endl;
cout<<"addition is:"<<a+b;
}
};
};
int main()
{BB::C c;
c.getdata_a(10);
c.getdata_b(20);
[Link]();
return 0;
}

4. Hybrid
Sol-
#include <iostream>
using namespace std;
class A
{
protected:
int a;
public:
void getdata_a()
{
cout<<"Enter the value of 'a':"<<endl;
cin>>a;
}
};

class B:public A
{
protected:
int b;
public:
void getdata_b()
{
cout<<"Enter the value of 'b':"<<endl;
cin>>b;
}
};
class C
{
protected:
int c;
public:
void getdata_c()
{
cout<<"Enter the value of c is:"<<endl;
cin>>c;
}
};

class D : public B, public C


{
protected:
int d;
public:
void mul()
{
getdata_a();
getdata_b();
getdata_c();
cout<<"Multiplication of a,b,c is:"<<a*b*c<<endl;
}
};
int main()
{
D d;
[Link]();
return 0;
}

5. Hierarchical
Sol-
#include<iostream>
using namespace std;
class A
{ public:
int n=2,m=3;
};
class B:public A
{ public:
void getdata_b()
{cout<<m+n<<"\n";
}
};
class C:public A
{ public:
void getdata_c()
{cout<<m-n<<"\n";
}
};
class D:public A
{
public:
void getdata_d()
{cout<<m*n;
}
};
int main()
{B o1;
C o2;
D o3;
o1.getdata_b();
o2.getdata_c();
o3.getdata_d();
}

6. Multilevel
Sol-
#include<iostream>
using namespace std;
class Animal
{
public:
void eat()
{
cout<<"eat"<<endl;
}
};
class Dog:public Animal
{
public:
void bark()
{
cout<<"bark"<<endl;
}
};
class Dog_a:public Dog
{
public:
void bark2()
{
cout<<"bark2"<<endl;
}
};
int main()
{
Dog_a a1;
[Link]();
[Link]();
a1.bark2();
}

7. Ambiguous in inheritance
Sol-
//ambiguity resolution in inheritance
#include<iostream>
using namespace std;
class A
{
public:
void display()
{
cout << "Class A" << std::endl;
}
};
class B
{
public:
void display()
{
cout << "Class B" << std::endl;
}
};
class C : public A, public B
{
public:
void view()
{
A::display();
B::display();
}
};
int main()
{
C c;
[Link]();
c.B::display();
return 0;
}

8. Copy constructor
Sol-
#include<iostream>
using namespace std;
class A
{
public:
int x;
A(int a)
{
x=a;
}
A(A &b)
{
x=b.x;
}
};
int main()
{
A a1(10);
A a2(a1);
cout<<a2.x;
}

9. Function overloading
Sol-
#include<iostream>
using namespace std;
class Addition
{
public:
int Add(int x, int y)
{
return x+y;
}
int Add()
{
int a=5;
int b=10;
int c=a+b;
return c;
}
};
int main()
{
Addition a1;
cout<<[Link](10,20)<<"\n";
cout<<[Link]();
return 0;
}

10. Function overriding


Sol-
#include<iostream>
using namespace std;
class A
{
public:
void function()
{
cout<<"function1"<<endl;
}
};
class B:public A
{
public:
void function()
{
cout<<"function2"<<endl;
}
};
int main()
{
A a;
[Link]();
B b;
[Link]();
return 0;
}

11. Virtual function


Sol-
#include<iostream>
using namespace std;
class add
{
public:
virtual void print()
{
int a=5,b=10;
cout<<"base class is:"<<a+b<<endl;
}
void show()
{
cout<<"show base class"<<endl;
}
};
class sub:public add
{
public:
void print()
{
int x=20,y=10;
cout<<"derived class is:"<<x-y<<endl;
}
void show()
{
cout<<"show derived class"<<endl;
}
};
int main()
{
add *a;
sub s;
a=&s;
a->print();
a->show();
[Link]();
return 0;
}

12.

You might also like