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

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

一起加油!

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

#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++继承与派生的理解,请持续关注我哦!!! 

相关推荐

  1. 第五章 类继承派生之——类继承派生

    2023-12-26 22:50:02       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-26 22:50:02       75 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-26 22:50:02       80 阅读
  3. 在Django里面运行非项目文件

    2023-12-26 22:50:02       64 阅读
  4. Python语言-面向对象

    2023-12-26 22:50:02       75 阅读

热门阅读

  1. LeetCode 每日一题 Day 23 || 简单数学题

    2023-12-26 22:50:02       56 阅读
  2. Mybatis之什么是Mybatis框架

    2023-12-26 22:50:02       46 阅读
  3. LeetCode——1276. 不浪费原料的汉堡制作方案

    2023-12-26 22:50:02       53 阅读
  4. 为什么Nginx是无状态的,而Redis是有状态的?

    2023-12-26 22:50:02       49 阅读
  5. 深入了解Pandas的数据类型

    2023-12-26 22:50:02       47 阅读
  6. UDP实现群聊

    2023-12-26 22:50:02       43 阅读
  7. 返利机器人赚佣金工作原理及实现思路探索

    2023-12-26 22:50:02       61 阅读
  8. NAT路由器,将内网ip转换为外网ip

    2023-12-26 22:50:02       55 阅读