Well let me start off with background, I am reading a book (learn C++ in 21 days by Sams Publishing), and I am having a couple of questions.

It seems they are basically saying that classes are designed to do one thing very well, many classes each of which doing one thing well is good coding practice. Now that is not my main question so don’t bother arguing semantics about the situation or anything lol.

What I want to know is more specifically referring to Multiple Inheritance. It uses a great example of Animal, Mammal, ect. Classes. Such as..
Code:
 Animal		 Animal
      |		      |
 Horse		   Bird
      |		      |
       ----------------------
	      |
	Pegasus
(lol ok the ascii art isnt working, if someone knows a way pleas enlighten me lol. But Animal is on top, Horse is under animal, Bird is also under Animal but aparently they have nothing to do with eachother. Then Pegasus uses multiple inheritance to use both Bird and Horse).

Now forgive my lack of ASCII code talent, but apparently each of those are classes. An Animal, Horse, Bird, and Pegasus class. Of course bird was matched with mammal at first, but for this example its not.

Now to make Pegasus fly, and gallop, you use multiple inheritance,
Code:
class Pegasus : public Horse, public Bird {
}
To allow him to do both.

My question is that if you do that, in bigger situations are you not wasting memory space by allocating unneeded Methods? Or does C++ when using inheritance only allocate memory that of which is being called by the calling class.
Such as if Bird has methods “Fly();” and “Chirp();”, and Pegasus uses inheritance to be able to use Fly(); from the class Bird, does C++ also allocate memory for Chirp();?

Because my understanding of classes is that when you load a class the amount of memory being allocated for each class is the sum of all its methods, be it data or function. For example so many 8byte variables add up into one memory address for the class.

Now I was just curious if it is better coding practice due to less memory being used, however not as easy to debug, if you separate each classes functions if it would seem wasteful.
Like if Bird had say 20 methods, and Pegasus only needed one of those methods, Fly();.

Anyway, I hope you understand my question, thanks for reading