Well Lemme try few more hand here..

Basics First Guys :-

              this :-  is a hidden pointer to a class (Agree ?). So whats
so special about it.. Answer is its compaction when the object of the class
is being created. Why? Here it goes. As object memory allocation (I hope
everyone knows) have memory structure such that the first parameter always
starts with arg[1]. so why not arg[0] as array always indexes with "0"? The
Answer is here.. Coz every time the object of a class is generated the
Zeroth index is alwayz occupied by this "*this*" pointer. So if do you
follow me up to here properly that you know the significance of this now..
Coz its object refference lies to the value of offset 0 to the base address
of the class's object, giving the flexibility to express any member of the
class by directly accessing via its base address and this also explains why
this has to be a pointer and not a normal member variable.

               Now here comes the other part of question.why we need *" ** *
this"*  where *"this"* should give the base address of the object of the
class we wanna refer. The Answer is partly "YES" coz as we discuss
"*this" *knows
almost everything about the class or rather an object of a class within a
class scope  but here is the catch we are telling someone to get a bowl of
rice from my private house. So how will he be able to get it? Until I tell
him my house structure, which in programming language like C++ is
reference.

           I am saying sir, I have created a house (object) and here is the
layout (referring to what I have created) so inorder to tell him about my
layout I have to generate the return value which is NOT the house (object)
but the reference to the house ( "pointer" pointing to what I have created
).

         Now I am almost done here.. So Why  " ** this *" and not "*this*"
is coz  "*this"*  gives the object directly to the the party who is calling
me and the reference means a copy not the object itself whereas " **
this *"  is
presenting you what you were looking for.

      I hope now people are clear about all the above aspects.. I mean the
very last question about returns full object or wat?? if you get all this..
U got all this.. :)

Ciao,
Prem






On Wed, Oct 10, 2012 at 12:23 AM, rahul sharma <rahul23111...@gmail.com>wrote:

> @saurabh....if i look from the way that i need to return a referencei.e. i
> mean object...i will ryt *this for this..........i knew this............but
> i have read that reference is a const pointer ....so if i look from this
> prespective then do i need to return pointer(this)..............
> int * fun()//return pointer to int
>
> then what does return by reference mean if i return ( *this)..then what
> actually returns...........full object???or pointer to object...mix
> questions ...plz clear me..
>
>
> On Tue, Oct 9, 2012 at 11:26 PM, Saurabh Kumar <srbh.ku...@gmail.com>wrote:
>
>> >> as we know reference is a const pointer
>> That is Not quite true.
>>
>> >> our aim is ony to return pointer to circle
>> No. our aim is to return a reference to circle.
>>
>> When you've to define a reference you do something like: *Circle &ref =
>> c;*
>> you *don't* do: *Circle &ref = &c;* Right ?
>>
>> Same is the case here, at the receiving end where the call was initiated
>> a reference is waiting there to be initialized, so you pass the Object
>> (*this) itself and NOT the pointer (this).
>> [Also remember if you've a complex object, no copy constructors etc. are
>> called when an object is sent for *reference receiving,* so no need of
>> worries there.]
>>
>> References are not quite exactly same as pointers, they were introduced
>> much later as a wrapper to pointers but there are some subtle differences
>> between them when it comes to writing code, behaviorally, yes they are more
>> or less the same.
>>
>> On 9 October 2012 22:54, SAMM <somnath.nit...@gmail.com> wrote:
>>
>>> This used for the following situation when   a=b=c=d  (Consider then as
>>> the  objects of a particular class say X ).
>>>
>>>
>>>  --
>>> 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.
>>
>
>  --
> 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.

Reply via email to