派生类的成员函数
Member functions of a derived class
当一个类从基类派生时,基类的成员函数会成为派生类的成员函数吗。也就是说,例如,如果我写:
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()
只能在A
和B
的成员函数中使用(以及从friend
s中使用(。
如果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/
相关文章:
- 如何使用指针传递给函数的数组中对象的函数成员
- c++构造函数成员初始化:传递参数
- 创建 std::函数,它返回具有函数成员值的变量.分段错误
- 如何在C++通过公共函数访问私有函数成员?
- 解释了构造函数成员初始化列表
- 调用std::函数成员时内存损坏
- 是否可以为模板类的模板函数成员设置别名?
- 捕获 lambda 函数C++成员变量
- 构造函数成员初始值设定项跨成员列出,安全吗?
- 获取与在模板参数中传递的函数成员类型相同的类
- 如何从公共函数成员访问地图私有成员
- C 构造函数成员分配优化
- 使用命名空间进行函数成员定义
- 函数成员作为 CUDA 内核的参数
- 模板基类函数成员的别名
- 函数成员中用于void和继承的enable_if
- 头文件中是否定义了一个很长的Class函数成员
- 类内/构造函数成员初始化
- 使用指向部分专用函数成员的指针自动填充向量
- 指向函数成员的指针