2013-10-19 59 views
2

我有一個基類A,另一類B其公開從類「A」衍生的和一個主要功能:擴展多態性派生類從基類

#include <iostream> 

class A 
{ 
public: 
    void add(int x,int y){std::cout<<x+y;} 
}; 

class B:public A 
{ 
public: 
    void add(int *x,int *y){std::cout<<*x+*y;} 
}; 

int main() 
{ 
    B t; 
    int p=5,q=6; 
    t.add(p,q); 
} 

上述程序編譯失敗和我我能夠理解,在A級add功能被隱藏在B類

我的問題的原因,我該如何實現上述任務?我婉在派生類的名字是相同的基類的一些功能添加函數的定義。參數表將是功能不同。

回答

5

如果要取消隱藏在BAadd方法,使用方法:

class B : public A 
{ 
public: 
    using A::add; 
    void add(int *x,int *y){std::cout<<*x+*y;} 
};