Re: reference type methods
On Mon, 14 Jul 2008 23:36:45 +1200, Ian Collins wrote:
Ruben wrote:
On Mon, 14 Jul 2008 23:26:07 +1200, Ian Collins wrote:
But I still am not sure why it doesn't cause a type mismatch error.
Because there isn't one.
The type of _array[index] is int. The function returns a reference to
an int, so there isn't any mismatch.
Thanks
That is the part I don't satisfactorly understand. Why is it not
returning the rvalue of the array element.
That would be const reference.
Why is it different than this
int x, y[10] = {1,2,3,4,5,6,7,8,9,10};
x = y[3];
How is it different? It is more like
int& x = y[3];
I would think the requested return value doen't match the method
definition and I'd have to return something like this
return &i[index];
No, you are out by one level of indirection. &i[index] takes the address
of i[index] and yields a pointer to int.
Yes but i[index] returns a literal integer. In fact, I don't know of any
way of returning a varriable, only the data that a symbolic variable
refers to.
I do know how to return an address of a variables assigned space, though a
pointer, like in scanf for example.
return i[index] isn't an lvalue. Yet when the fuction is defined as
returning a reference, it seems to have a seperate syntax unrelated to
the rest of a references implimentation. The only way I know of returning
an actually reference...actually I don't know a way because even under
this circumstance
int =y =3, z;
int & x = y;
z = x; //STILL an RVALUE assigned and copied to z
so
return x;//should still be an rvalue returned (unless you return a point)
This seems to be a seperate property of references.
Ruben
It looks like you should do some background reading on references and
pointers, particularly their differences.
--
http://www.mrbrklyn.com - Interesting Stuff
http://www.nylxs.com - Leadership Development in Free Software
So many immigrant groups have swept through our town that Brooklyn, like Atlantis, reaches mythological proportions in the mind of the world - RI Safir 1998
http://fairuse.nylxs.com DRM is THEFT - We are the STAKEHOLDERS - RI Safir 2002
"Yeah - I write Free Software...so SUE ME"
"The tremendous problem we face is that we are becoming sharecroppers to our own cultural heritage -- we need the ability to participate in our own society."
"> I'm an engineer. I choose the best tool for the job, politics be damned.<
You must be a stupid engineer then, because politcs and technology have been attached at the hip since the 1st dynasty in Ancient Egypt. I guess you missed that one."
?? Copyright for the Digital Millennium