Hello, Saurabh. I understand what you're trying to do, and that it seems to 
make perfect sense. Every instance of a Msg2 also has all the fields of a 
Msg1, so why can't it be a special subtype with just some extra data? 
Ploymorphism is meant primarily for types where the difference among 
parents and subtypes is behavior, but not for differering data fields. See 
here <https://en.wikipedia.org/wiki/Circle-ellipse_problem> for a more 
detailed explanation why. 

On Wednesday, October 19, 2016 at 3:30:22 PM UTC-4, Saurabh Kumar wrote:
>
> Hi,
>
> This question is regarding inheritance in protobuf C++ library. I will 
> explain what I am looking for with a concrete example.
>
> I have this message definition:
>
>  message MSG1
>  {
>    required string account = 0;
>    required string symbol = 1;
>  }
>
> Now I want to extend this message and define a new message like this:
>  message MSG2
>  {
>    required string account = 0;
>    required string symbol = 1;
>    required int32  id          = 2;
>  }
>
> You will notice that first two fields of MSG2 are exactly same as MSG1 
> (they are intended to be like that). But here I had to copy paste the 
> common fields again.
> Can I do something like this?
>
>  message MSG2 extends MSG1
>  {
>    required int32  id          = 2;
>  }
>
> I have already thought about using it like:
>  message MSG2
>  {
>    required MSG1 msg1 = 0;
>    required int32  id          = 2;
>  }
> But this is not really what I want.
>
> What's the best way to achieve this?
>
> Thanks,
> Saurabh
>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to