假定有一个基类Basic,它的公有成员函数show()用来显示其他保护数据成员;现在它被一个叫做Next的派生类私有继承了,那么基类的show()函数在派生类中为私有成员函数,即无法在类外通过Next的对象来调用它。这时,我们可以在Next的“public:”之中写下这一句访问声明:Basic::show;然后我们便能通过Next的对象(假定为next)来调用基类的show()函数:next.show();
大体用途讲完,现在来看看几个使用访问声明时需要注意的点:
1、访问声明所能改变的派生类成员的访问属性与这些成员在基类中的访问属性有关,数据成员,函数成员都可以使用访问声明:在基类中为公有成员的,在派生类中使用访问声明只能把它变成派生类的公有成员;基类的保护成员同理;基类的私有成员不允许使用访问声明改变其在派生类中的性质。
2、访问声明在表达时,即使将改变的目标是函数成员,也不能在函数名后面带上括号“()”,如开头处的示例:Basic::show;
3、第二点中不允许带括号的做法导致了一个结果:当该想要改变访问方式的函数有重载函数时,重载函数也会被改变访问方式,这一点值得注意。