如何在c ++中从derive类调用基类方法?

时间:2012-04-22 00:03:06

标签: c++

  

可能重复:
  Is there a way to call an object's base class method that's overriden? (C++)

第一个问题是在java中调用super()构造函数与在c ++中首先初始化超类构造函数一样。

sub() : super(){}


有没有办法在c ++中调用超类方法,就像在java

中一样

离。

public sub(){
super.someMethod(); 

}

1 个答案:

答案 0 :(得分:6)

要调用类的基础构造函数,请将其称为BaseClassName(args)。例如:

class A
{
public:
    A() { }
    virtual void Foo() { std::cout << "A's foo" << std::endl; }
};

class B : public A
{
public:
    B() : A() { }
    void Foo();
};

要调用方法的基类版本,请执行BaseClassName::MethodName

void B::Foo()
{
    std::cout << "B's foo" << std::endl;
    A::Foo();
}