继承

 

 

///公有继承
#include<iostream>
#include<string>

class person
{
private:
	char name[20];
	int age;
	bool sex;///0代表女,1代表男

public:
	person()
	{   
		strcpy(name, "");   
		sex = 1;  
		age = 0 ; 
	}
	person(char* strName ,bool bSex ,int nAge)
	{
		setName(strName);
		setSex(bSex);
		setAge(nAge);
	}

	void setName(char* strName)
	{
		strcpy(name ,strName);
	}

	void setSex(bool bSex)
	{
		sex = bSex;
	}

	void setAge(int nAge)
	{
		age = nAge;
	}

	void display()
	{
		using namespace std;
		cout<<"姓名为:  "<<name<<endl;
		cout<<"性别为:  "<<(sex == 1 ? "男" : "女")<<endl;
		cout<<"年龄为:  "<<age<<endl;
	}
};

class student : public person
{
private:
	char SID[20];
public:

	student()
	{
		strcpy(SID,"");
	}

	student(char* strName ,bool bSex, int nAge , char* strID)
	{
		setName(strName);
		setSex(bSex);
		setAge(nAge);
		setSID(strID);
	}

	void setSID(char* strID)
	{
		strcpy(SID ,strID);
	}

	void display()
	{
		using namespace std;
		person::display();
		cout<<"学号为:  "<<SID<<endl;
	}
};

void main()
{
	using namespace std;
	student s1("林燕" , 0 ,25 ,"10061136"),  s2;

	cout<<"调用s1.person::display()的输出为:"<<endl;
	s1.person::display();

	cout<<"调用s1.display()的输出为:"<<endl;
	s1.display();

	cout<<"调用s2.display()的输出为:"<<endl;
	s2.display();

	s2.setName("王小明");
	s2.setAge (23);
	s2.setSex(1);
	s2.setSID("10061125");
	cout<<"调用s2.display()的输出为:"<<endl;
	s2.display();
}


 

 

///私有继承
#include<iostream>
#include<string>

class person
{
private:
	char name[20];
	int age;
	bool sex;///0代表女,1代表男

public:
	person()
	{   
		strcpy(name, "");   
		sex = 1;  
		age = 0 ; 
	}
	person(char* strName ,bool bSex ,int nAge)
	{
		setName(strName);
		setSex(bSex);
		setAge(nAge);
	}

	void setName(char* strName)
	{
		strcpy(name ,strName);
	}

	void setSex(bool bSex)
	{
		sex = bSex;
	}

	void setAge(int nAge)
	{
		age = nAge;
	}

	void display()
	{
		using namespace std;
		cout<<"姓名为:  "<<name<<endl;
		cout<<"性别为:  "<<(sex == 1 ? "男" : "女")<<endl;
		cout<<"年龄为:  "<<age<<endl;
	}
};

class student : private person
{
private:
	char SID[20];
public:

	student()
	{
		strcpy(SID,"");
	}

	student(char* strName ,bool bSex, int nAge , char* strID)
	{
		setName(strName);
		setSex(bSex);
		setAge(nAge);
		setSID(strID);
	}

	void setSID(char* strID)
	{
		strcpy(SID ,strID);
	}

	void display()
	{
		using namespace std;
		person::display();
		cout<<"学号为:  "<<SID<<endl;
	}
};

void main()
{
	using namespace std;
	student s1("林燕" , 0 ,25 ,"10061136"),  s2;

//	cout<<"调用s1.person::display()的输出为:"<<endl;
//	s1.person::display();

	cout<<"调用s1.display()的输出为:"<<endl;
	s1.display();

	cout<<"调用s2.display()的输出为:"<<endl;
	s2.display();

//	s2.setName("王小明");
//	s2.setAge (23);
//	s2.setSex(1);
	s2.setSID("10061125");
	cout<<"调用s2.display()的输出为:"<<endl;
	s2.display();
}


 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值