可能重复:
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();
}
答案 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();
}