Skip to main content
GameDev.net gamedev.net
🔒 Locked

c++ pointer to member array of int

Started by noatom Apr 4, 2013 at 8:20 PM 7 replies 4.6k views
Original Post
noatom
noatom

class x{
public:
int arr[10];
};

How do you create a pointer to arr?

noatom
noatom

No,i mean with the special syntax for pointer to member,like:

x d

x* z = &d

int x::*mypointer = &x::arr;

the above would work if arr would be a simple int,not an array

Brother Bob
Brother Bob

I believe it would be like this.


int (x::*mypointer)[10] = &x::arr;
LordRhys
LordRhys
This is the hardest part of C++ to me and why I have had so much trouble with it. There are 3 answers to this question and all three show a different way, pointers can just be too confusing.
Brother Bob
Brother Bob

Yes, pointers can be confusing. But there was only one answer to this question, not three. My first response, for example, was not the kind of pointer he was looking for and thus is not an answer. Member pointers are different from pointers. My second response is the only answer in this case if he wants a member pointer to an array of 10 integers.

King Mir
King Mir

Also, if the wrap around syntax of array types is confusing, you can use a typedef to define the pointer type in parts:


typedef int IntArray10[10];
IntArray10 x::*mypointer = &x::arr;
noatom
noatom

@LordRhys,don't worry,I've seen a lot of code but I never actually enocuntered those pointers.I asked because I had an exercise about them.You can always make a simple pointer and point it at the array.

Even though you won't see many things used in c++,it's good to have an ideea about them,because you might encounter them once.

Paradigm Shifter
Paradigm Shifter

I've used pointer to member functions but not pointer to member variables. It's pretty rare.

Basically it's just an offset and may be useful if you want to point to one of several arrays in an object... Still pretty much a borderline case though...

I'm not even sure if the syntax is any better than the (unsafe) C way of just calculating the offset. I supose it's safer but if I was doing anything like that it would be low level and wrapped in a class anyway...

"Most people think, great God will come from the sky, take away everything, and make everybody feel high" - Bob Marley

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.