C++继承:同名隐藏、覆盖,虚函数

本文介绍了C++中的继承原理,包括同名隐藏、覆盖和虚函数的概念。同名隐藏是指派生类内的同名成员会隐藏基类的成员,而虚函数则实现了运行时的多态性。通过使用域分辨符`::`和`using`关键字,可以访问和引入被隐藏的基类成员。同时,文章强调了虚函数在派生类和基类之间的关键作用,使得通过基类指针调用同名函数时能够根据实际对象类型执行相应的方法,从而实现多态行为。
摘要由CSDN通过智能技术生成

    不同作用域声明的标识符的可见性原则:

    如果存在两个或多个具有包含关系的作用域,外层声明了一个标识符,而内层没有再次声明同名标识符,那么外层标识符在内层依然可见,如果在内层声明了同名标识符,则外层标识符在内层不可见,这时称内层标识符隐藏了外层同名标识符,这种现象称为隐藏规则。

    在类的派生层次结构中,基类的成员和派生类新增的成员都具有类作用域。二者的作用范围不同,是相互包含的两个层,派生类在内层。这时,如果派生类声明了一个和某个基类成员同名的新成员,派生的新成员就隐藏了外层同名成员,直接使用成员名只能访问到派生类的成员。如果派生类中声明了与基类同名的新函数,即使函数的参数表不同,从基类继承的同名函数的所有重载形式也都被隐藏。如果要访问被隐藏的成员,就需要使用类作用域分辨符和基类名来限定。

    作用域分辨符,就是"::",它可以用来限定要访问的成员所在的类的名称。一般的使用形式是:

    类名::成员名

    类名::成员名(参数表)

    关于同名隐藏的验证:

代码1:

#include<iostream>
using namespace std;
class A
{
	public:


	void print2(){
		cout<<"A print2 !"<<endl;
	}
};


class B:public A
{
	
	public:


	void print2(int x){
		cout<<"B print2 !"<<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值