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);
}

上面的程序编译失败,我能够理解addA类中的函数隐藏在B类中的原因。

我的问题,我该如何完成上述任务?我想在派生类中添加一个函数定义,其名称与基类中的某个函数相同。函数的参数列表会有所不同。

4

1 回答 1

5

如果要取消隐藏 in 中的方法add,请使用:AB

class B : public A
{
public:
    using A::add;
    void add(int *x,int *y){std::cout<<*x+*y;}
};
于 2013-10-19T10:38:24.917 回答