虚基类的值由最远派生类赋值

#include<iostream>
using namespace std ;
class Base
{ 
	int basee ;
public:
	Base(int base)
	{
		cout<<"Initializing Base..."<<endl;
		this->basee = base ; 
	}
	void show()
	{
		cout<<basee<<endl;
	}
};
class Base1 : virtual public Base
{
	int base11 ;
public:
	Base1(int base1 ,int base1base ):Base(base1base)
	{
		this->base11 = base1 ;
		cout<<"Initializing Base1..."<<endl;
	} 
};
class Base2:virtual public Base
{
	int base22 ;
public:
	Base2(int base2, int base2base):Base(base2base)
	{
		this->base22 = base2 ;
		cout<<"Initializing Base2...."<<endl;
	}
};
class Derived : public Base1, public Base2
{
	int derived ;
public:
	Derived(int derivied , int derivedbase , int base1 , int base1base ,  int base2 , int base2base ) : Base(derivedbase),Base1(base1,base1base),Base2(base2,base2base)
	{
		cout<<"Initializing Derived..."<<endl;
		this->derived = derivied;
	}
};
int main()
{
	int derivied = 1 ;
	int derivedbase = 2 ;
	int base1 = 3 ;
	int base1base = 4 ;
	int base2 = 5 ;
	int base2base = 6 ;
	Derived d(derivied , derivedbase,base1,base1base,base2,base2base);
   d.show();
	return 0 ;
}

  

输出为 derivedbase=2

转载于:https://www.cnblogs.com/dot-dot-123/p/3631132.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值