C++中private、protected、public的权限介绍(继承)

本文通过C++代码示例介绍了基类成员在派生类中的访问权限规则。包括private、protected及public成员在不同继承方式下的可见性和可访问性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

基类成员再派生类中的访问权限不能高于继承方式中指定权限。(在高于时,编译器会自动把该权限转变成继承方式中指定权限)

private:    可以在类的内部访问,在类的外部与派生类中不能被访问。

protected:可以在类的内部与派生类中访问,在类的外部不能被访问。

public:      在类的内部,类的外部和派生类中都能被访问。     

 

#include<iostream>
using namespace std;

class A
{
	
	private:    //类的内部可以访问,派生类不可以访问 
		int m_a;
	protected:
		int m_b;
	public:
		int m_c;
	public:
		void  print1()
		{
			cout<<"m_a:"<<m_a<<endl;
			cout<<"m_b:"<<m_b<<endl;
			cout<<"m_c:"<<m_c<<endl;
		}
}; 

class B :public A
{
//	public:
//		int m_c;
	public:
		void print2()
		{
			cout<<"m_c:"<<m_c<<endl;
		}
};
class C:protected A  //类的内部可以访问,派生类也可以访问,类的外部不可以访问 
{
	//protected:
	//	int m_b;
	//protected:
	//	int m_c;  ,改变了m_c权限 
	//不能打印 m_a,因为 m_a是私有的!!!! 
	public:
		void print3()
		{
			cout<<m_c<<endl;
		}
};
class D:private A    
{
	//private:
    //	int m_b;
    //private:
    //	int m_c;
	public:
		void print4()
		{
			cout<<"m_b:"<<m_b<<endl;
		} 
};
int main()
{
	A a;
	B b;
	C c;
	D d;    
//	b.m_b;   protected在类外不能访问;  在类内和派生类中可以访问; 
//	c.m_c;   变成了protected型;  
//	d.m_c;
	b.print2();
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值