Object Oriented Programming Practical 14
Question 1
Write a C++ program to implement the concept of virtual base class for following figure.

student.cpp
C
#include<iostream.h>
#include<conio.h>
class student
{
char name[50];
public:
void accept()
{
cout<<"\nEnter name of student: ";
cin>>name;
}
void display()
{
cout<<"\nName of student: "<<name;
}
};
class test:virtual public student
{
public:
int marks;
void gettest()
{
cout<<"\nEnter marks of test: ";
cin>>marks;
}
void puttest()
{
cout<<"\nTest marks: "<<marks;
}
};
class sports:virtual public student
{
public:
int sport_score;
void getsport()
{
cout<<"\nEnter sport score: ";
cin>>sport_score;
}
void putsport()
{
cout<<"\nSport score: "<<sport_score;
}
};
class result: public test,public sports
{
public:
void putresult()
{
int total=marks+sport_score;
cout<<"\nResult is: "<<total;
}
};
int main()
{
clrscr();
result r;
r.accept();
r.gettest();
r.getsport();
r.display();
r.puttest();
r.putsport();
r.putresult();
getch();
return 0;
}
Output

Question 2
Write a C++ program to implement given figure class hierarchy. Assume suitable member variables and member functions.

account.cpp
C
#include<iostream.h>
#include<conio.h>
class account
{
char bankname[50];
public:
void accept()
{
cout<<"\nEnter bankname of bank: ";
cin>>bankname;
}
void display()
{
cout<<"\nName of bank: "<<bankname;
}
};
class saving_acc:virtual public account
{
public:
int balance;
void getsaving()
{
cout<<"\nEnter balance of saving account: ";
cin>>balance;
}
void putsaving()
{
cout<<"\nSaving account balance: "<<balance;
}
};
class current_acc:virtual public account
{
public:
int balance;
void getcurrent()
{
cout<<"\nEnter balance of current account: ";
cin>>balance;
}
void putcurrent()
{
cout<<"\nCurrent account balance: "<<balance;
}
};
class fix_depo_acc: public saving_acc,public current_acc
{
public:
int balance;
void getaccount()
{
cout<<"\nEnter fixed deposit balance: ";
cin>>balance;
}
void putaccount()
{
cout<<"\nBalance in fixed deposit: "<<balance;
}
};
int main()
{
clrscr();
fix_depo_acc fd;
fd.accept();
fd.getsaving();
fd.getcurrent();
fd.getaccount();
fd.display();
fd.putsaving();
fd.putcurrent();
fd.putaccount();
getch();
return 0;
}
Output
