2009-10-25 60 views
2

我知道一些語言允許這樣做。在C++中可能嗎?有沒有辦法調用被覆蓋的對象的基類方法? (C++)

+0

你是說)從派生類中或b)從功能不相關的類? – 2009-10-25 02:35:38

+0

[C++:如何從派生類函數調用父類函數?]可能的重複?(http://stackoverflow.com/questions/357307/c-how-to-call-a-parent-class-function-from派生類函數) – outis 2012-04-22 00:05:56

回答

5

是:

#include <iostream> 

class X 
{ 
    public: 
     void T() 
     { 
      std::cout << "1\n"; 
     } 
}; 

class Y: public X 
{ 
    public: 
     void T() 
     { 
      std::cout << "2\n"; 
      X::T();    // Call base class. 
     } 
}; 


int main() 
{ 
    Y y; 
    y.T(); 
} 
1

是的,只是指定的基類的類型。

例如:

#include <iostream> 

struct Base 
{ 
    void func() { std::cout << "Base::func\n"; } 
}; 

struct Derived : public Base 
{ 
    void func() { std::cout << "Derived::func\n"; Base::func(); } 
}; 

int main() 
{ 
    Derived d; 
    d.func(); 
} 
2
class A 
{ 
    virtual void foo() {} 
}; 

class B : public A 
{ 
    virtual void foo() 
    { 
    A::foo(); 
    } 
}; 
相關問題