Thread overview | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
May 19, 2020 Is it possible to write some class members in another module ? | ||||
---|---|---|---|---|
| ||||
Hi all, Is it possible to write some class members in another module ? I have class with a lot of member variables.(probably 50+) I would like to write them (Not all, but some of them) in a special module for the sake of maintenance. |
May 19, 2020 Re: Is it possible to write some class members in another module ? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Vinod K Chandran | On Tuesday, 19 May 2020 at 22:01:03 UTC, Vinod K Chandran wrote:
> Is it possible to write some class members in another module ?
You can make some of members be other structs that you aggregate together.
|
May 19, 2020 Re: Is it possible to write some class members in another module ? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Vinod K Chandran | On Tuesday, 19 May 2020 at 22:01:03 UTC, Vinod K Chandran wrote: > Hi all, > Is it possible to write some class members in another module ? I have class with a lot of member variables.(probably 50+) I would like to write them (Not all, but some of them) in a special module for the sake of maintenance. You can use Template Mixins to add variable declarations in others scope. https://dlang.org/spec/template-mixin.html |
May 20, 2020 Re: Is it possible to write some class members in another module ? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Adam D. Ruppe | On Tuesday, 19 May 2020 at 22:10:25 UTC, Adam D. Ruppe wrote:
> On Tuesday, 19 May 2020 at 22:01:03 UTC, Vinod K Chandran wrote:
>> Is it possible to write some class members in another module ?
>
> You can make some of members be other structs that you aggregate together.
That's a good idea but there is a problem.
As per your idea--
```
struct Events{
uint click;
uint shown;
uint move;
....
}
class Window : Control{
Events event;
.....
}
// Now, we need to use like this
auto form= new Window();
form.event.click = bla_bla;
// I really want to use like this
auto form= new Window();
form.click = bla_bla;
```
|
May 20, 2020 Re: Is it possible to write some class members in another module ? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Boris Carvajal | On Tuesday, 19 May 2020 at 23:51:45 UTC, Boris Carvajal wrote:
> On Tuesday, 19 May 2020 at 22:01:03 UTC, Vinod K Chandran wrote:
>> Hi all,
>> Is it possible to write some class members in another module ? I have class with a lot of member variables.(probably 50+) I would like to write them (Not all, but some of them) in a special module for the sake of maintenance.
>
> You can use Template Mixins to add variable declarations in others scope.
>
> https://dlang.org/spec/template-mixin.html
Thank you for the reply. Let me check. :)
|
May 20, 2020 Re: Is it possible to write some class members in another module ? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Vinod K Chandran | On Wednesday, 20 May 2020 at 09:45:48 UTC, Vinod K Chandran wrote:
> // Now, we need to use like this
> auto form= new Window();
> form.event.click = bla_bla;
>
> // I really want to use like this
> auto form= new Window();
> form.click = bla_bla;
> ```
Then you want alias this.
class Window : Control{
Events event;
alias event this
.....
}
and now when you write
form.click = bla_bla;
Compiler first checks if form.click compiles and if it doesnt it then it tries form.event.click
|
May 20, 2020 Re: Is it possible to write some class members in another module ? | ||||
---|---|---|---|---|
| ||||
Posted in reply to welkam | On Wednesday, 20 May 2020 at 15:01:36 UTC, welkam wrote:
> On Wednesday, 20 May 2020 at 09:45:48 UTC, Vinod K Chandran wrote:
>> // Now, we need to use like this
>> auto form= new Window();
>> form.event.click = bla_bla;
>>
>> // I really want to use like this
>> auto form= new Window();
>> form.click = bla_bla;
>> ```
>
> Then you want alias this.
>
> class Window : Control{
> Events event;
> alias event this
> .....
> }
>
> and now when you write
> form.click = bla_bla;
> Compiler first checks if form.click compiles and if it doesnt it then it tries form.event.click
Wow !!!
What a perfect solution ! That is what i wanted. Thanks a lot friend. :)
The more i practice D, the more i am loving it. I am very sad that i delayed to start learning D only because of semicolons and curly braces. But now i recognizes that how beautiful this language is.
|
May 20, 2020 Re: Is it possible to write some class members in another module ? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Vinod K Chandran | On Wednesday, 20 May 2020 at 17:29:47 UTC, Vinod K Chandran wrote:
> I am very sad that i delayed to start learning D only because of semicolons and curly braces.
Walter(creator of this language) said that redundant grammar is a good thing because it allows compiler to emit better error messages.
|
Copyright © 1999-2021 by the D Language Foundation