![]() |
accessing parent class method
In my program I am using two classes foo1, the parent class, and foo2
the child class! foo2 has overloaded inserter and extractor operator, but so does foo1! How can I access foo1 inserter or extractor? Thanks |
Re: accessing parent class method
On 2008-06-01 03:07, Victor Bazarov wrote:
> ArbolOne wrote: >> In my program I am using two classes foo1, the parent class, and foo2 >> the child class! >> foo2 has overloaded inserter and extractor operator, but so does foo1! >> How can I access foo1 inserter or extractor? > > Post your code. It is easier when there is substance to the discussion. > > Meanwhile, here is the example: > > struct foo { > void foobar(); > }; > > struct bar : foo { > void foobar(); > }; > > int main() { > bar b; > b.foobar(); // calls bar::foobar > b.foo::foobar(); // call foo::foobar > } I would call it bad style to explicitly call a parent's implemenetation of a function (and bad design if you have to), unless it is done in the child's implementation of the same function: #include<iostream> struct foo1 { virtual void foobar() { std::cout << "foo1\n"; } }; struct foo2 : public foo1 { virtual void foobar() { std::cout << "foo2\n"; foo1::foobar(); // Call foo1's foobar() } }; int main() { foo1* f = new foo1(); f->foobar(); delete f; f = new foo2(); f->foobar(); } -- Erik Wikström |
Re: accessing parent class method
On Jun 1, 3:57 am, Erik Wikström <Erik-wikst...@telia.com> wrote:
> On 2008-06-01 03:07, Victor Bazarov wrote: > > > > > ArbolOne wrote: > >> In my program I am using two classes foo1, the parent class, and foo2 > >> the child class! > >> foo2 has overloaded inserter and extractor operator, but so does foo1! > >> How can I access foo1 inserter or extractor? > > > Post your code. It is easier when there is substance to the discussion. > > > Meanwhile, here is the example: > > > struct foo { > > void foobar(); > > }; > > > struct bar : foo { > > void foobar(); > > }; > > > int main() { > > bar b; > > b.foobar(); // calls bar::foobar > > b.foo::foobar(); // call foo::foobar > > } > > I would call it bad style to explicitly call a parent's implemenetation > of a function (and bad design if you have to), unless it is done in the > child's implementation of the same function: > > #include<iostream> > > struct foo1 { > virtual void foobar() { > std::cout << "foo1\n"; > } > > }; > > struct foo2 : public foo1 { > virtual void foobar() { > std::cout << "foo2\n"; > foo1::foobar(); // Call foo1's foobar() > } > > }; > > int main() { > foo1* f = new foo1(); > f->foobar(); > delete f; > f = new foo2(); > f->foobar(); > > } > > -- > Erik Wikström I got it now! Thanks. |
| All times are GMT. The time now is 07:02 PM. |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.