Help | Site Map
Connecting Tech Pros Worldwide
 
 
LinkBack Thread Tools
  #1  
Old August 16th, 2005, 05:15 PM
Tony Johansson
Guest
 
Posts: n/a
Default public inheritance wth advantage and disdvantage

Hello experts!

My question is what advantage and disadvantage have public inheritance.

The answer that I have to this is that sometimes it is an advantage to let a
client have access to everything
declared in the public section of the derived class and the base class and
sometimed it is an disadvantage.
Another important advantage is that wherever you can use an object of base
class you can also use an object of it's derived class which result to using
polymorfism.
Sometimes it's a disadvantage to have the client be able to access everyting
in the public section.
If you use public inheritace and you want to use the methods in the
implementation it's not a good idea
because the client can access them.

Have you any additional advantage or disadvantage to add to those that I
have mentioned.

Many thnaks

//Tony


  #2  
Old August 16th, 2005, 05:35 PM
Ben Pope
Guest
 
Posts: n/a
Default Re: public inheritance wth advantage and disdvantage

Tony Johansson wrote:[color=blue]
> Hello experts!
>
> My question is what advantage and disadvantage have public inheritance.
>
> The answer that I have to this is that sometimes it is an advantage to let a
> client have access to everything
> declared in the public section of the derived class and the base class and
> sometimed it is an disadvantage.
> Another important advantage is that wherever you can use an object of base
> class you can also use an object of it's derived class which result to using
> polymorfism.
> Sometimes it's a disadvantage to have the client be able to access everyting
> in the public section.
> If you use public inheritace and you want to use the methods in the
> implementation it's not a good idea
> because the client can access them.
>
> Have you any additional advantage or disadvantage to add to those that I
> have mentioned.[/color]

It's not really about "advantages/disadvantages", they represent different relationships.

If you publicly inherit from a base class then the derived class "is a" type of base class, the base class can be "substituted by" a derived class. The whole point of public
inheritance is polymorphism.

Private inheritance means that the derived class is "implemented in terms of" or composed from the base class.

Have you read sections 19-25:
http://www.parashift.com/c++-faq-lite/

Ben
--
I'm not just a number. To many, I'm known as a String...
  #3  
Old August 16th, 2005, 05:45 PM
Victor Bazarov
Guest
 
Posts: n/a
Default Re: public inheritance wth advantage and disdvantage

Tony Johansson wrote:[color=blue]
> My question is what advantage and disadvantage have public inheritance.[/color]

It depends on what you consider "advantage" or "disadvantage", doesn't it?
[color=blue]
> The answer that I have to this is that sometimes it is an advantage to let a
> client have access to everything
> declared in the public section of the derived class and the base class and
> sometimed it is an disadvantage.[/color]

Good answer. Does this actually provide any information? It's like when
asked about the climate in Norway, you'd say, "Sometimes it rains and some
other times the sun's shining". No information whatsoever, except that it
doesn't rain all the time.
[color=blue]
> Another important advantage is that wherever you can use an object of base
> class you can also use an object of it's derived class which result to using
> polymorfism.[/color]

It doesn't necessarily involve polymorphism.
[color=blue]
> Sometimes it's a disadvantage to have the client be able to access everyting
> in the public section.[/color]

Like, when?
[color=blue]
> If you use public inheritace and you want to use the methods in the
> implementation it's not a good idea
> because the client can access them.[/color]

Huh?
[color=blue]
> Have you any additional advantage or disadvantage to add to those that I
> have mentioned.[/color]

I think you're thinking too much into that. What's the advantage and
disadvantage of addition? How about division? And multiplication? All
those operations are necessary in certain situations.

Public inheritance exists to specifically model the "is-a" relationship.
An object of the derived class can be used where an object of the base
class is expected. The language provides a conversion between the two.
If you don't want public members of the base class to be accessible via
the derived class object, don't use public inheritance.

V
 

Bookmarks

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are Off
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

What is Bytes?

We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights. Get the best answers to your questions from over network members.
Post your question now . . .
It's fast and it's free

Popular Articles