C++继承与派生——(3)公有继承的访问权限的变化

发布时间:2023年12月26日

归纳编程学习的感悟,
记录奋斗路上的点滴,
希望能帮到一样刻苦的你!
如有不足欢迎指正!
共同学习交流!
🌎欢迎各位→点赞 👍+ 收藏? + 留言?📝
缺乏明确的目标,一生将庸庸碌碌!

一起加油!

????????当类的继承方式是公有继承时,基类的公有成员和保护成员被派生类继承后成为派生类的公有成员和保护成员,派生类的成员可以直接访问它们。基类的私有成员虽然被派生类继承下来,但是派生类的成员无法访问它们。基类的公有成员被派生类继承后作为派生类的公有成员,可以被派生类的对象从类外访问。

#include<iostream>
#include<string>
using namespace std;
class Person{
	private:
		string name;
		int age;
		char sex;
	public:
		void setPerson(string pName,int pAge,char pSex){
			name=pName;
			age=pAge;
			sex=pSex;
		}
		string getName(){
			return name;
		}
		int getAge(){
			return age;
		}
		char getSex(){
			return sex;
		}
		void print();
}; 

void Person::print(){
	cout<<"姓名:"<<name<<endl;
	cout<<"年龄:"<<age<<endl;
	cout<<"性别:"<<sex<<endl;
}

class Student:public Person{
	private:
		int ID;
		double score;
	public:
		Student(string pName,int pAge,char pSex,int pID,double pScore){
			setPerson(pName,pAge,pSex);
			ID=pID;
			score=pScore;
		}
		int getID(){
			return ID;
		}
		double getScore(){
			return score;
		}
		void print(); 
};

void Student::print(){
	cout<<"学号:"<<ID<<endl;
	cout<<"分数:"<<score<<endl; 
}

int main(){
	Student s("李华",18,'F',20230011,95);
	s.Person::print();
	s.print();
	return 0;
}

????????通过公有继承方式,基类 Person 中的公有成员 SetStudent( )和 print()被继承后作为派生类公有成员,派生类的成员可以直接访问它们,派生类的对象在类外也可以直接访问它们。通过派生类对象访问公有成员 print 时,要注意派生类重新定义了和基类同名的公有成员函数 print(),因此需要使用域作用运算符进行区分;基类 Person 中的私有成员虽然被派生类继承下来,但是派类新定义的成员不能直接访问他们,必须通过从基类继承过来的成员间接访问。

????????以上就是我对C++继承与派生——(3)公有继承的访问权限的变化的理解,希望本篇文章对你有所帮助,也希望可以支持支持博主,后续博主也会定期更新学习记录,记录学习过程中的点点滴滴。如果有不懂和发现问题的小伙伴,请在评论区说出来哦,同时我还会继续更新对C++继承与派生的理解,请持续关注我哦!!!?

文章来源:https://blog.csdn.net/2301_80585598/article/details/135228493
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。