@himanshu: http://en.wikipedia.org/wiki/Virtual_inheritance
Go through the last paragraph before reference.

On Jul 4, 12:02 pm, himanshu kansal <himanshukansal...@gmail.com>
wrote:
> @piyush:what does this two virtual pointers storing???nd how does they help
> in eliminating ambiguity....??
>
>
>
>
>
>
>
>
>
> On Mon, Jul 4, 2011 at 4:08 AM, T3rminal <piyush....@gmail.com> wrote:
> > @abc abc
> > 4th class= two ints from X and Y classes + one int from base class( as
> > this class is shared ) + 2 virtual pointers of X and Y classes.
>
> > On Jul 3, 2:24 pm, abc abc <may.i.answ...@gmail.com> wrote:
> > > In the second case , the size of vptr will be added to each and every
> > object
> > > .
> > > 1st class = one int :4
> > > 2nd class = one int +one int from base + vptr =12
> > > 3rd class = one int + one int from base + vptr =12
> > > 4th class =one int from each base class + one int from each of the grand
> > > parent +one vptr =20
>
> > > On Sun, Jul 3, 2011 at 2:43 PM, himanshu kansal <
> > himanshukansal...@gmail.com
>
> > > > wrote:
> > > > class Base
> > > > {
> > > >      public:
> > > >            int a;
> > > > };
>
> > > > class X:  public Base
> > > > {
> > > >      public:
> > > >            int x;
> > > > };
>
> > > > class Y:  public Base
> > > > {
> > > >      public:
> > > >            int y;
> > > > };
>
> > > > class Z:public X,public Y
> > > > {
> > > > };
>
> > > > int main()
> > > > {cout<<sizeof(Base)<<endl;
> > > > cout << sizeof(X) <<endl;
> > > > cout << sizeof(Y) <<endl;
> > > > cout << sizeof(Z) <<endl;
> > > > }
> > > > o/p is 4
> > > > 8
> > > > 8
> > > > 16...
> > > > which is absolutely fine.....
>
> > > > but the problem arises here....
> > > > class Base
> > > > {
> > > >      public:
> > > >            int a;
> > > > };
>
> > > > class X:virtual public Base
> > > > {
> > > >      public:
> > > >            int x;
> > > > };
>
> > > > class Y:virtual public Base
> > > > {
> > > >      public:
> > > >            int y;
> > > > };
>
> > > > class Z:public X,public Y
> > > > {
> > > > };
>
> > > > int main()
> > > > {cout<<sizeof(Base)<<endl;
> > > > cout << sizeof(X) <<endl;
> > > > cout << sizeof(Y) <<endl;
> > > > cout << sizeof(Z) <<endl;
> > > > }
>
> > > > o/p is 4
> > > > 12
> > > > 12
> > > > 20
> > > > why the size is 12 and 20 for x and Z....does this is because that
> > > > some sort of VPTR IS maintained in the class....if yes then then what
> > > > does that points to....
>
> > > > PS:HERE.....i am talking about virtual inheritance....NOT ABOUT
> > > > "VIRTUAL FUNCTIONS"...
>
> > > > --
> > > > You received this message because you are subscribed to the Google
> > Groups
> > > > "Algorithm Geeks" group.
> > > > To post to this group, send email to algogeeks@googlegroups.com.
> > > > To unsubscribe from this group, send email to
> > > > algogeeks+unsubscr...@googlegroups.com.
> > > > For more options, visit this group at
> > > >http://groups.google.com/group/algogeeks?hl=en.
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Algorithm Geeks" group.
> > To post to this group, send email to algogeeks@googlegroups.com.
> > To unsubscribe from this group, send email to
> > algogeeks+unsubscr...@googlegroups.com.
> > For more options, visit this group at
> >http://groups.google.com/group/algogeeks?hl=en.
>
> --
>
>       Regards
> Himanshu Kansal
>   Msc Comp. sc.
> (University of Delhi)

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to