Member functions with access to local variables

Linden Krouse ztaticnull at gmai.com
Tue Apr 9 13:02:58 PDT 2013


I suppose my initial example wasn't the greatest. Here's a better 
example of what I'm trying to do.

module a;
class A : SuperA
{
     B b = new B();
     C c;
     D d;
     //...

     this()
     {
         b.loadInteralStuff("filepathofstufftoload");
     }

     void doStuff()
     {
         int var1, var2;
         char var3;
         int[] var4;
         File var5;

         //read and parse stuff from a file...

         //found commands that need to be executed, although
         //this class only knows that they are a set of commands
         //not what they actually do (and shouldn't)
         b.executeCammands(commandArray);
     }

}

module b;
class B : SuperB
{
     SomeComplexDataStructure data;

     //private helper functions

     void loadInternalStuff(string filename)
     {
         //load a file in a certain way. This implementation
         //could be subject to change which shouldn't affect A
     }
     void executeCammands(byte[] commands)
     {
         //execute each command, most of which need to edit
         //the local variables of doStuff() but should be
         //implemented in this class

         //in most cases, the local variables needed could be
         //similar to any implementation but are different enough
         //for it to be a major annoyance to pass every possible
         //variable needed to this function by reference
     }
}

It would be convenient to have a way to either specify that a 
function can be called only by a specific function and have 
access to it's local variables or overload a function to provide 
a specific implementation for certain functions.


More information about the Digitalmars-d mailing list