>Number: 5575 >Category: c++ >Synopsis: Inheritance of overloaded methods fail. >Confidential: no >Severity: non-critical >Priority: low >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Fri Feb 01 14:06:01 PST 2002 >Closed-Date: >Last-Modified: >Originator: [EMAIL PROTECTED] >Release: gcc-3.0.3 >Organization: >Environment: Linux nc1701d 2.4.18-pre7-ac1 #2 Tue Jan 29 22:21:52 CET 2002 i686 unknown >Description: If class A defines a couple of overloaded methods (virtual or not), and one inherits this class in another class, let's say B, that redefines one of these methods, the other overloaded methods from A are not accessible anymore without prepending "A::". >How-To-Repeat: #include <iostream>
using namespace std; class A { public: void f(); void f(int); }; void A::f() { cout << "A::f()" << endl; } void A::f(int) { cout << "A::f(int)" << endl; } class B : public A { public: void f(int); }; void B::f(int) { cout << "B::f(int)" << endl; } int main(int argc, const char **argv) { A a; B b; b.f(); // <-- compilation fails here: no matching function for call to `B::f() } >Fix: >Release-Note: >Audit-Trail: >Unformatted: