public inbox for gcc-prs@sourceware.org help / color / mirror / Atom feed
From: "Artem Khodush" <artem@duma.gov.ru> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org Subject: Re: c++/3400: doesn't compile simple hierarchy with overlaoding Date: Tue, 26 Jun 2001 01:16:00 -0000 [thread overview] Message-ID: <20010626081601.7241.qmail@sourceware.cygnus.com> (raw) The following reply was made to PR c++/3400; it has been noted by GNATS. From: "Artem Khodush" <artem@duma.gov.ru> To: <volker.reichenberger@iwr.uni-heidelberg.de> Cc: <gcc-gnats@gcc.gnu.org>, <gcc-bugs@gcc.gnu.org> Subject: Re: c++/3400: doesn't compile simple hierarchy with overlaoding Date: Tue, 26 Jun 2001 11:56:20 +0400 > > class A {public: void a() {};};class B: public A {public: void a(int n) {};};int main(void){ B b; b.a(); return 0;} > > I get the error message: > > test.cc: In function `int main()': > test.cc:15: no matching function for call to `B::a ()' > test.cc:8: candidates are: void B::a(int) > > I believe the code is correct (so do all my colleagues). Nope. See the quote from the c++ standard below. In GCC 3.0, you can fix the code by putting using A::a(); into the class B. 13.2 Declaration matching [over.dcl] 1 Two function declarations of the same name refer to the same function if they are in the same scope and have equivalent parameter declara- tions (_over.load_). A function member of a derived class is not in the same scope as a function member of the same name in a base class. [Example: class B { public: int f(int); }; class D : public B { public: int f(char*); }; Here D::f(char*) hides B::f(int) rather than overloading it. void h(D* pd) { pd->f(1); // error: // D::f(char*) hides B::f(int) pd->B::f(1); // ok pd->f("Ben"); // ok, calls D::f } --end example]
next reply other threads:[~2001-06-26 1:16 UTC|newest] Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top 2001-06-26 1:16 Artem Khodush [this message] -- strict thread matches above, loose matches on Subject: below -- 2001-06-26 5:26 lerdsuwa 2001-06-25 4:16 volker.reichenberger
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20010626081601.7241.qmail@sourceware.cygnus.com \ --to=artem@duma.gov.ru \ --cc=gcc-prs@gcc.gnu.org \ --cc=nobody@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).