【C++】虛基類的應用實例【原創技術】


 

題目:html

在各種中分別增長如下成員:ios

base1中增長私有數據成員int b1ide

base2中增長私有數據成員int b2學習

level1中增長私有數據成員int l1spa

level2中增長私有數據成員int l23d

toplevel中增長私有數據成員int thtm


class_picture.jpg

源代碼:blog


//科目:C++實驗5
//題目:修改書本p194頁4.18的程序
//做者:武葉
//語言:C++
//創做時間:2012年4月14日
#include<iostream>
using namespace std;
class base1
{
private:
int b1;
public :
base1(int i)
{
b1=i;
cout<<"class base1"<<endl;
}
void show()
{
cout<<"b1:"<<b1<<endl;
}
};
class base2
{
private:
int b2;
public:
base2(int j)
{
b2=j;
cout<<"class base2"<<endl;
}
void show()
{
cout<<"b2:"<<b2<<endl;
}
};
class level1:public base2,virtual public base1
{
private:
int l1;
public:
level1(int i,int j,int k):base1(i),base2(j)
{
l1=k;
cout<<"class level1"<<endl;
}
void show()
{
base1::show();
base2::show();
cout<<"l1:"<<l1<<endl;
}
};
class level2:public base2,virtual public base1
{
private:
int l2;
public:
level2(int i,int j,int m):base1(i),base2(j)
{
l2=m;
cout<<"class level2"<<endl;
}
void show()
{
base1::show();
base2::show();
cout<<"l2:"<<l2<<endl;
}
};
class toplevel:public level1,virtual public level2
{
private:
int t;
public:
toplevel(int i,int j,int m,int k,int n):base1(i),level2(i,j,k),level1(i,j,m)
{
t=n;
cout<<"class toplevel"<<endl;
}
void show()
{
level1::show();
level2::show();
cout<<"t:"<<t<<endl;
}
};
int main()
{
toplevel obj(1,2,3,4,5);
obj.show();
return 0;
}
 get

 

更多詳細內容:::::去學習it