【C++代码运行结果测试】基类与派生类的成员变量值的调用结果(一)

【铺垫】派生类对象可被基类指针所指向,效果与被派生类指针指向等效
·基类/派生类的成员变量由哪个对象初始化的,哪个对象调用该成员变量时就用由它初始化的值 [尤其找准是基类对象or派生类对象的值]
【代码测试1】15浙工大卷一读程序5题代码改
在这里插入图片描述
【代码测试2】C++教辅p206例7.21
在这里插入图片描述
【代码1】15浙工大卷一读程序5题代码改

#include "bits/stdc++.h" 
#include<iostream>
using namespace std;
class BClass{ //基类 
	protected:
		int n;
	public:	
		BClass(int a){ 
			cout<<"基类构造BClass()"<<endl;
			n=a;
		}
		virtual void Show(){ //show函数的作用就是把变量值展现出来  
			cout<<"执行基类Show(),基类变量n为"<<n<<endl; 
		} 
}; 

class SClass:public BClass{ //派生类  
	BClass base; //注意此建了基类对象  
	int m;
	public:
		SClass(int a,int b):BClass(a),base(b){ 
			cout<<"派生构造SClass()"<<endl;
			n=b;
		}
		virtual void Show(){ 
			cout<<"执行派生类Show(),派生类中基类变量n为"<<n<<endl;
		} 
};

int main(){ 
	BClass b(99); //创建基类对象.输出基类构造BClass()
   	b.Show(); //输出:执行基类Show(),基类变量n为99
   	
	SClass s(1,2); //输出2次基类构造BClass()+1次派生构造SClass() 
	BClass *p=&s; //等效于SClass *p=&s.可用基类指针指向派生类对象  
	p->Show(); //输出:执行派生类Show(),派生类中基类变量n为2 
   	b.Show(); //输出:执行基类Show(),基类变量n为99  
   	
    return 0;
} 

【代码2】C++教辅p206例7.21

#include "bits/stdc++.h" 
#include<iostream>
using namespace std;

class A{
	int x;
	public:
		A(int i){
			x=i;
		}
		void dispa(){
			cout<<"A类中的x="<<x<<endl; //A中的x=12 
		} 
		
};

class B:public A{
	int x;
	public:
		B(int i):A(i+10){ 
			x=i;
		}
		void dispb(){ 
			dispa();
			cout<<"B类中的x="<<x<<endl; //B类中的x=2  
		}
};
	
int main(){ 
	B b(2);
   	b.dispb();
   	
    return 0;
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值