🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.std.c++
Article #1445

Re: pointer comparisons

#1445
From: John MAX Skaller
Date: Sat, 09 Jan 1993 19:01
44 lines
1704 bytes
In article <1993Jan7.025948.23000@lucid.com> jss@lucid.com (Jerry Schwarz) writes:
>	struct X { int i ; } ;
>	struct D : public X {
>		X xInD ;
>	} ;
>
	This example is not contentious. But:

	struct X { virtual int f()=0; };

	struct Y : public X { int i; int f(){return i;} };

	struct D : public X {
		Y y;
		int j;
		int f(){return j;}
	};

Now this example IS contentious. For an implementation not using
vtble pointers, the abstract class X might occupy 0 bytes.

Then:

	D d;
	d.i=1;
	d.j=2;
	
	X* p1=&d; // base subobject
	X* p2=&d.y; // included object base subobject
	p1==p2; // OH!
	cout<<"1=="<<p1->f();
	cout<<"2=="<<p2->f();

and I dont see how such an implementation could actually work
UNLESS at least the language require that abstract base
subobjects occupy at least one byte.

I dont believe this is required by the ARM, clearly it should be.

-- 
;----------------------------------------------------------------------
        JOHN (MAX) SKALLER,         maxtal@extro.ucc.su.oz.au
	Maxtal Pty Ltd, 6 MacKay St ASHFIELD, NSW 2131, AUSTRALIA
;--------------- SCIENTIFIC AND ENGINEERING SOFTWARE ------------------
Technical Details
Message-ID: <1993Jan9.190136.18834@ucc.su.OZ.AU>
Path: arc1-ca.pugleaf.net!sparky!uunet!munnari.oz.au!metro!extro.ucc.su.OZ.AU!maxtal
References: <1993Jan5.222300.29535@lucid.com> <1993Jan06.201647.7602@microsoft.com> <1993Jan7.025948.23000@lucid.com>

Show Full Headers
Complete Article Headers
Newsgroups: comp.std.c++
Path: arc1-ca.pugleaf.net!sparky!uunet!munnari.oz.au!metro!extro.ucc.su.OZ.AU!maxtal
From: maxtal@extro.ucc.su.OZ.AU (John MAX Skaller)
Subject: Re: pointer comparisons
Message-ID: <1993Jan9.190136.18834@ucc.su.OZ.AU>
Sender: news@ucc.su.OZ.AU
Nntp-Posting-Host: extro.ucc.su.oz.au
Organization: MAXTAL P/L C/- University Computing Centre, Sydney
References: <1993Jan5.222300.29535@lucid.com> <1993Jan06.201647.7602@microsoft.com> <1993Jan7.025948.23000@lucid.com>
Date: Sat, 9 Jan 1993 19:01:36 GMT
Lines: 44