Quick question (basic class/pointers stuff)

Started by
1 comment, last by AAAP 18 years, 4 months ago
Hello y'all, i just wanna know, if i have say:

class blah
{
   int g;
   public:
          void modg(int a){ g = a; }
          int  getg(){ return g; }
};

class foo
{
   
   int h;
public:
       blah *Goo;
     foo(){
           
             Goo = new blah;
             Goo->modg(h);  
          };
     void modh(int a){ h = a; }
     int  geth(){ return h; }
};

int main(int argc, char *argv[])
{
    foo cl;
    cl.modh(15);
    cl.Goo->modg(cl.geth());
    
    cout << cl.Goo->getg() << endl;
    
        cl.modh(4);
    cl.Goo->modg(cl.geth());
    
    cout << cl.Goo->getg() << endl;
        cl.modh(10);
    cl.Goo->modg(cl.geth());
    
    cout << cl.Goo->getg() << endl;
    
    system("PAUSE");
    return EXIT_SUCCESS;
}

just as an example, is cl.Goo->modg(int) changing the real instance of cl.Goo class, or just modifying a copy of it. I think from the test i did on this, it modifies the real thing. This applies to my game engine, where before passing control of the program to the window, it passes a pointer to the game engine itself so i can access/change game data from within the window. I think this will work but I don't want any surprises x.X
|aaap.penopticon.com| My website, including game projects. Collaboration/comments are welcome, please visit :)
Advertisement
That is changing the internal state of the blah that the Goo member points at, but continuing to point at the same blah.
so it wouldn't be a copy, and it will affect the state of the program.

thats what I want o_O.

now.. im realizing that to do this, the Window class probably shouldn't be a member of the game class 0_0
|aaap.penopticon.com| My website, including game projects. Collaboration/comments are welcome, please visit :)

This topic is closed to new replies.

Advertisement