How to create instance of class that get data from 2 another instance?

Tobias Pankrath via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Jan 2 07:24:04 PST 2015


On Friday, 2 January 2015 at 14:50:54 UTC, Suliman wrote:
>> Anything declared in main() is local to main and not a global.
>
> Ok! So I need create multiple instances of the parseconfig?
>
> Or please suggest me any solution, I really can't understand 
> how to be in such situation...

Have you ever used a C-like programming language or are you a 
bloody beginner? So that I can figure out how basic the 
explanation has to be.

Basically every pair of {} introduces a scope. And you can only 
refer to things declared in the current or a parent scope.

{
    int x;
    {
        // x available here
    }
}
// x not available anymore

For your example this means that

void main()
{
      auto parseconfig = new parseConfig();
}
// parseConfig unavaiable since here

class whatever
{
    // cannot use parseconfig
}

What you can do is to declare the config outside any braces and 
make it a module global. But you'll need a module constructor 
(look them up in the docs). They are declared with this() outside 
of any scope in a module.

----
parseConfig parseconfig;

this()
{
     parseconfig = new parseConfig(...);
}

void main() { /* can use parseconfig */ }

class SomeClass { /* should be able to as well */ }
---


More information about the Digitalmars-d-learn mailing list