【一句话点破】【C++重要题目】基类与派生类的成员变量值被对象调用的结果(二)

【一句话点破】基类/派生类的成员变量由哪个对象初始化的,哪个对象调用该成员变量时就用由它初始化的值 [尤其找准是基类对象or派生类对象的值]
【重要例题】15浙工大卷二读程序5题
在这里插入图片描述
·可运行代码如下

#include "bits/stdc++.h" 
#include<iostream>
using namespace std;
class Base{
	int x0,y0;
	public:
		Base(int i,int j){ //基类2参构造 
			x0=i;
			y0=j;
		}
		void Move0(int x,int y){
			x0+=x; y0+=y;
		} 
		void show0(){ 
			cout<<"基类Base的x0为"<<x0<<",y0为"<<y0<<endl; 
		}
}; 
class Derived:private Base{
	private:
		int x,y;
	public:
		Derived(int i,int j,int m,int n):Base(i,j){ //派生类构造初始参数列表  
			x=m; y=n;
		} 
		void show0(){    
			cout<<"派生类Derived的x为"<<x<<",y为"<<y<<endl;
		} 
		void Move1(){
			Move0(2,3);
		}
		void show1(){
			Base::show0();
		}
};
 
int main(){ 
    Base b(111,222); //x0=i=111,y0=j=222 
    b.show0(); //输出基类Base的x0为111,y0为222  
    Derived d(666,888,10,15); //x0=i=666,yo=j=888,x=m=10,y=n=15   
    d.Move1(); //【注意】执行基类move0(2,3),基类x0=x0+x=666+2,yo=yo+y=888+3 
    d.show0(); //输出派生类Derived的x为10,y为15  
    d.show1(); //【注意】调用基类show0(),输出类Base的x0,y0  
    
    return 0;
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值