#include using namespace std; // comapring public vs. virtual inhertance //myClassVirtualInherit1.cpp class EMP { public: int Sal; }; //class LocalRecord : public EMP { class LocalRecord : virtual public EMP { public: void SetLocalSalray(int setSal) { Sal = setSal; cout<<"\n SetLocalSalray Sal " << Sal;} int GetLocalSalray() { cout<<"\n GetLocalSalray: return Sal " << Sal; return Sal; } }; //class HeadOfficeRecord : public EMP { class HeadOfficeRecord : virtual public EMP { public: void SetHeadOfficeRecordSal(int setSal) { Sal = setSal; cout<<"\n Head Office SetSalary " << Sal; } int GetHeadOfficeRecordSal() { cout<<"\n Head Office GetSalary Sal "<< Sal; return Sal; } }; // multiple inhertaance class BookKeeper : public LocalRecord, public HeadOfficeRecord {}; // int main(int argc, char *argv[]) { cout<<"\n virtual inheritance -->"; BookKeeper BK; BK.SetLocalSalray(10); BK.SetHeadOfficeRecordSal(20); cout <<"\n BK.GetLocalSalray() : " << BK.GetLocalSalray() << endl; cout <<"\n BK.GetHeadOfficeRecordSal() :" << BK.GetHeadOfficeRecordSal() << endl; return 0; }