By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,290 Members | 1,666 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,290 IT Pros & Developers. It's quick & easy.

public inheritance wth advantage and disdvantage

P: n/a
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
Aug 16 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
Tony Johansson wrote:
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.


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...
Aug 16 '05 #2

P: n/a
Tony Johansson wrote:
My question is what advantage and disadvantage have public inheritance.
It depends on what you consider "advantage" or "disadvantage", doesn't it?
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.
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.
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.
It doesn't necessarily involve polymorphism.
Sometimes it's a disadvantage to have the client be able to access everyting
in the public section.
Like, when?
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.
Huh?
Have you any additional advantage or disadvantage to add to those that I
have mentioned.


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
Aug 16 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.