派生类的成员函数

Member functions of a derived class

本文关键字:函数 成员 派生      更新时间:2023-10-16

当一个类从基类派生时,基类的成员函数会成为派生类的成员函数吗。也就是说,例如,如果我写:

class A 
{ 
public : void f();
};
class B : public A 
{ 
public : void f1();
};

现在,如果问题是命名类B中的成员函数,那么f((是否也会成为类B的成员函数?

那么f((也会成为B类的成员函数吗?

没有。f()仍然是A类的成员函数,B类只是继承了它。在您的情况下,它是一个公共成员函数,公共继承意味着您可以在B对象上调用f()

B b;
b.f();

另一方面,类B可以定义自己的成员函数f():

class A 
{ 
public : void f();
};
class B : public A 
{ 
public : void f(); // will hide A::f()
};
是的,类B有两个函数:f1()f()

如果f()也是A中的protected,但f()只能在AB的成员函数中使用(以及从friends中使用(。

如果f()private,则B将只有一个函数f1()

class A { 
public : void f();
};
class B : public A 
{ 
public : void f1();
};

现在代码是有效的。它是可见的。即使将f1名称更改为f,它在B类中仍然可见。如果您想使用它,请使用作用域运算符:。

像这样:

A::f()

更多关于基本传承http://www.learncpp.com/cpp-tutorial/112-basic-inheritance-in-c/