[C++-sig] Pyste: bug: overriding overloaded virtual functions.

Nicodemus nicodemus at globalite.com.br
Sat Jul 5 00:54:12 CEST 2003


Hi Prabhu,

Prabhu Ramachandran wrote:

>Hi,
>
>One more bug.  Consider an overloaded virtual function that is
>implemented in the base class and not overridden in the derived class.
>
>// --------- overload.hpp --------
>namespace test {
>class Base {
>public:
>    virtual void f() {}
>    virtual void f(const int i){}
>};
>
>class A : public Base {
>public:
>    void f(){}
>};
>}
>// --------- overload.hpp --------
>
>Running Pyste on this produces this wrapper code:
>
>// ---------- wrapper code ----------
>struct test_A_Wrapper: test::A
>{
> [...]
>    void f(const int p0) {
>        call_method< void >(self, "f", p0);
>    }
>
>    void default_f(const int p0) {
>        test::A::f(p0);    // <<===========  ERROR.
>        test::Base::f(p0); // <<===========  Should be this.
>    }
> [...]
>// ---------- wrapper code ----------
>
>
>Attached is a patch (two lines) for the _current_ CVS code that fixes
>this.
>  
>

I just applied your patch. I really appreciate your effort in finding 
this problems, thanks a lot!

Regards,
Nicodemus.





More information about the Cplusplus-sig mailing list