Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 Inheritance & Polymorphism Question.
Index -> Programming, C++ -> C++ Help
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
copthesaint




PostPosted: Thu Oct 10, 2013 10:23 pm   Post subject: Inheritance & Polymorphism Question.

I have class a, class b and class c.

c++:
Class A;

Class B : public A;

Class C:
protected:
A a;
B b;
};


My question is if I can use Polymorphism to possibly cast C to type "A" or to type "B" without inheriting them both. If I included both A & B I could cast to either, but wouldn't this cause an issue for the multiple inheritance of methods and data types?
Sponsor
Sponsor
Sponsor
sponsor
Dreadnought




PostPosted: Thu Oct 10, 2013 10:29 pm   Post subject: Re: Inheritance & Polymorphism Question.

Why not just have C inherit from B? Then C "is a" B and B "is a" A, hence C "is a" A (transitivity).

Maybe I don't understand the situation. You could also overload the cast operator to return a pointer to the objects of class A and B inside the object of class C (I'd recommend using inheritance if possible though).
'
DemonWasp




PostPosted: Thu Oct 10, 2013 11:34 pm   Post subject: RE:Inheritance & Polymorphism Question.

Technically, C++ does actually support multiple inheritance. Unless you know exactly what you're doing it's a disaster.

Dreadnought is right, though: if you want "C is an A" and "C is a B" and you already have "B is an A" then have C extend B. This doesn't require multiple inheritance (or overloading cast operators or anything else so complicated).
copthesaint




PostPosted: Fri Oct 11, 2013 3:36 am   Post subject: RE:Inheritance & Polymorphism Question.

As the example shows, I want a separate instance of both type A and B.

I tested my own question for a while and yea its exactly as you say; Unless you know exactly what you're doing it's a disaster. It took a little while but I came up with a solution with multiple inheritance. I'll test it for a while to see if there are any issues.
[Gandalf]




PostPosted: Sat Oct 12, 2013 12:27 pm   Post subject: RE:Inheritance & Polymorphism Question.

I've found that even if you know what you're doing with MI, and you get things working smoothly, you eventually realize there is a better way of doing it using SI. You never need multiple inheritance.
Display posts from previous:   
   Index -> Programming, C++ -> C++ Help
View previous topic Tell A FriendPrintable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 1  [ 5 Posts ]
Jump to:   


Style:  
Search: