need 'this' to access data member
Chris Nicholson-Sauls
ibisbasenji at gmail.com
Tue Sep 26 20:28:44 PDT 2006
clayasaurus wrote:
> Hi, I have the following code attached, and I do not understand why I
> can not access this data member. Help is very much appreciated, thanks.
>
> ~ Clay
>
>
> ------------------------------------------------------------------------
>
> // datafield hacks
> alias int FILE;
> alias int Uint8;
>
> // structure
> struct SDL_RWops
> {
>
> int (*seek)(SDL_RWops *context, int offset, int whence);
> int (*read)(SDL_RWops *context, void *ptr, int size, int maxnum);
> int (*write)(SDL_RWops *context, void *ptr, int size, int num);
> int (*close)(SDL_RWops *context);
> uint type;
>
> union hide
> {
> version(Windows)
> {
> struct win32io
> {
> int append;
> void *h;
> }
> }
> struct stdio
> {
> int autoclose;
> FILE *fp;
> }
> struct mem
> {
> Uint8 *base;
> Uint8 *here;
> Uint8 *stop;
> }
> struct unknown
> {
> void *data1;
> }
> }
> hide hidden;
>
> }
>
>
> int main()
> {
> SDL_RWops w;
>
> // need 'this' to access data member data1??
> w.hidden.unknown.data1 = null;
>
> return 0;
> }
Because 'SDL_RWops.hidden.unknown' is a struct type decleration, not a field decleration.
In the same way that you had to create a field of type 'hide' in order to access its
components ('hidden') you also need a field of type 'unknown' to do so.
-- Chris Nicholson-Sauls
More information about the Digitalmars-d-learn
mailing list