Overwriting pure virtual functions by 'using' a separately inherited method
<p>Just a small annoyance really as I can work around the problem by wrapping the derived function instead of using the 'using' keyword but why doesn't the following work (the compiler tells me that 'get_elem' is still pure virtual in 'Bar' class).</p>

<pre><code>class Elem {};

class DerivedElem : public Elem {};

class Foo {

  public:
    virtual Elem&amp;  get_elem() = 0;

};

class Goo {

  protected:
    DerivedElem elem;

  public:
    DerivedElem&amp; get_elem()  { return elem; }

};


class Bar : public Foo, public Goo {

  public:
    using Goo::get_elem;

};

int main(void) {

  Bar bar;

}
</code></pre>

<p>Cheers,</p>

<p>Tom</p>
