Friend class and pointer function
CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums
Results 1 to 3 of 3

Thread: Friend class and pointer function

Hybrid View

  1. #1
    Join Date
    Jul 2008

    Friend class and pointer function

    Hi! I need help with understanding this block of code, particullary this line: *getLeftChild() { return this - _child; }

    public class UpperNode
    BOX _box;
    int _child;
    FORCEINLINE UpperNode *getLeftChild() { return this - _child; }

    Here I have this function:

    UpperNode::visulization(int level)
    	if (isLeaf())
    		if ((level > 0)) {
    			if (level == 1)
    			if (getLeftChild())
    			if (getRightChild())
    It also makes calls for "getLeftChild()";
    But I see that getLeftChild expects function pointer, and I absolutely have no clue where "this" comes from inside function body.

    (return this - _child) - "this" has to be integer.
    Or, if we gave pointer, and "this" is reffering to some UpperNode, then I can't understand to which one, I have no UpperNode array defined or something. So if this functions is actually scaling pointer address, then scaling where to? I could comprehend it, if I had some array of UpperNodes, but not just class. I have UpperNodes array defined in other friendly class, but don't think they are related
    Last edited by RyuMaster; March 9th, 2013 at 04:30 AM.

  2. #2
    2kaud's Avatar
    2kaud is offline Super Moderator Power Poster
    Join Date
    Dec 2012

    Re: Friend class and pointer function

    This article should help to explain 'this'

    'this' is a pointer to the class object the class function is working with. The 'this' pointer is a hidden pointer inside every class member function that points to the class object the member function is working with.
    All advice is offered in good faith only. You are ultimately responsible for the effects of your programs and the integrity of the machines they run on. Anything I post, code snippets, advice, etc is licensed as Public Domain

    C, C++ Compiler: Microsoft VS2017

  3. #3
    Join Date
    Jun 2010

    Re: Friend class and pointer function

    Sure, but that code is indexing this, which really is rather funky and, as the OP altrady suspected, only works in the context of an array of such objects. This is what the OP apparently (and quite understandably) seems to have problems to comprehend. I'm afraid that can't be explained without seeing the code in a larger context, though. (And I don't think it's directly reated to friend classes in any way at all.)
    I was thrown out of college for cheating on the metaphysics exam; I looked into the soul of the boy sitting next to me.

    This is a snakeskin jacket! And for me it's a symbol of my individuality, and my belief... in personal freedom.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Windows Mobile Development Center

Click Here to Expand Forum to Full Width

This a survey!

HTML5 Development Center