【C++】4.3 调整基类成员在派生类中的访问属性的其它方法

本文探讨了C++中派生类如何通过访问声明来调整从基类继承成员的访问属性,包括如何处理同名成员及如何使私有继承下的基类公有成员在派生类中可直接访问。

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

4.3 调整基类成员在派生类中的访问属性的其它方法

4.3.1 同名成员

(1)派生类中定义了与基类成员同名的成员,派生类成员覆盖类基类的同名成员

(2)派生类中使用基类的同名成员

          基类名::成员名

4.3.2 访问声明

(1)为什么要使用访问声明

         对于私有继承,基类的公有成员函数变成类派生的私有成员函数

        外界无法利用派生类对象直接调用基类的成员函数,

        而只能通过派生类的成员函数间接调用基类的成员函数

(2)示例:

#include<iostream>
using namespace std;

class A{
	public:
		A(int a1,int visit1){
			a=a1;
			visit=visit1;
		}
		void print(){
			cout<<"A->a = "<<a<<endl;
		}
		int visit;
	
	private:
		int a;
};

class B:private A{
	public:
		B(int a1,int visit1,int b1):A(a1,visit1){
			b1=b;
		}
		
		A::print;		//基类成员函数的访问声明 
		A::visit;		//基类成员变量的访问声明 
	
	private:
		int b;
}; 

int main()
{
	B b(10,20,30);
	b.print();		//调用基类的成员函数 print
	cout<<"A->visit = "<<b.visit<<endl;   //调用基类的成员变量 visit 
}

运行结果:

(3)访问声明中不带类型和参数的 函数名和变量名

(4)访问声明不改变成员在基类中的访问属性

访问声明只能

把原基类的保护成员调整为私有派生类的保护成员

把原基类的公有成员调整为私有派生类的公有成员

基类的私有成员不能使用访问声明

(5)对于基类的重载函数名,访问声明将对基类所有同名函数起作用

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值