c ++多态性和虚函数

时间:2014-09-11 17:04:13

标签: c++ inheritance polymorphism

是否可以在不使用评论内容的情况下从B调用虚函数foo(int)?

class A {
public: 

    virtual void foo ( char * ) {
    }

    virtual void foo ( int ) {
    }
};

class B : public A {
public:

    void foo ( char * ) {
    }

    //void foo ( int i ) {
    //  
    //  A::foo(i);
    //}
};

B b;
b.foo(123); // cannot convert argument 1 from 'int' to 'char *'

1 个答案:

答案 0 :(得分:8)

是的,有可能。这里的问题是函数B::foo(char*) 隐藏继承函数A::foo(int)的名称,但您可以使用{{B将其带回using的范围内1}}声明:

class B : public A {
public:

    void foo ( char * ) {
    }

    using A::foo;
};