2012-04-22 11 views
0

可能性の重複:
Is there a way to call an object's base class method that's overriden? (C++)C++で基本クラスメソッドを呼び出す方法

最初の質問は、C++のように最初のスーパークラスのコンストラクタの初期化と同じJavaでスーパー()コンストラクタを呼び出しています。


Javaで

元のようにC++でのスーパークラスのメソッドを呼び出す方法があり

sub() : super(){} 

public sub(){ 
super.someMethod(); 

}

+0

[C++:派生クラスの関数から親クラスの関数を呼び出す方法は?]の可能複製( http://stackoverflow.com/q/357307/)、[オーバーライドされたオブジェクトの基本クラスメソッドを呼び出す方法はありますか? (C++)](http://stackoverflow.com/q/1619769/) – outis

答えて

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(); 
} 
関連する問題