从基类调用函数

时间:2013-03-19 16:47:50

标签: c++ inheritance

我有A级和B级。

class A{
public:
    foo();
};

class B : public A{
public:
    int x;
};

假设测试文件中有一个来自B类的对象。我应该如何调用foo函数?

object.foo(); // or
object.A::foo();

其他问题: 我们什么时候调用这样的函数?如果我做多重继承怎么办?

2 个答案:

答案 0 :(得分:3)

只需object.foo(),就可以添加更多内容:

B object;
object.foo();

答案 1 :(得分:1)

B类继承A类的公共成员,因此函数foo()也属于B类,可以使用B类的对象调用。

B b;
b.foo();

你需要知道inheritance in c++.它与

相同
b.x; 

请参阅xfoo()两者都是对象b的成员,即使b是B类的对象也是可能的,因为B类继承功能来自A类,在您的代码函数foo()

注意 A类只有一个成员函数foo()

A a;
a.foo(); 

有效,但

a.x; 

无效

编辑:多级继承C类继承B类,B类继承A类,然后

class C : public B{
public:
    int y;  
};

C c;
c.foo();  // correct

也有效。

并且

c.x;
c.y;

同样有效,xyfoo()都是C类成员。

注意:我告诉你的是多级Multiple inheritance in C++是不同的。在继承的情况下,C ++中的三个访问说明符也非常重要:public private protected in c++