c++学习笔记_继承类问题_赋值兼容

注释都添加在代码里了

#include<iostream>
#include<cstring>
using namespace std;
class CPerson
{//定义person类 
	public:
		void set(char *p,int x,int y)
		{//定义函数带参构造函数 
			strcpy(name,p);
			num=x;
			sex=y;
		}
		void out()
		{//定义输出函数 
			cout<<"name:"<<name<<",num:"<<num;
			if (sex==0) cout<<",sex:男"<<endl;
			else cout<<",sex:女"<<endl;
		}
	private://私有数据项 
		char name[8];
		int num;
		int sex;
};
class CStudent:public CPerson
{//定义student类 并共有继承person类 
	public:
		void addscore(float x)
		{//定义带参构造函数 
			score =x;
		}
		void out()
		{//定义输出函数 
			CPerson::out();//先输出person类中的输出,涉及同名覆盖 
			cout<<"score:"<<score<<endl;
		}
	private:
		float score;
};
int main()
{
    CPerson s;
	CStudent s1;
	
	s1.set("wu",1,0);
	s1.addscore(95.5f);
	//总的来说,等号右边的一定是子类对象,即大的可以给小的赋值
	//也就是1.子类的对象可以给父类的对象赋值和初始化,
	//2.父类的指针可以指向子类对象(即子类对象的地址可以给父类指针赋值)
	//3.父类的引用可以引用子类的对象(即给子类的对象取一个父类型的别名)
	s=s1;
	return 0;
}
发布了28 篇原创文章 · 获赞 12 · 访问量 3816

猜你喜欢

转载自blog.csdn.net/q767410241/article/details/84324176