Re: How to implement private constructor

2022-04-25 Thread Vinod K Chandran via Digitalmars-d-learn

On Monday, 25 April 2022 at 07:19:31 UTC, bauss wrote:


Yes and in addition to Ali's message then remember it's 
private for the module only.



Oops typo.


What I meant is that private is module level, so it's __not__ 
private in the module, but it is for other modules.


Thanks for the reply. Got it. All I wanted to implement more than 
ctor with different parameters and avoid code duplication.






Re: How to implement private constructor

2022-04-25 Thread Vinod K Chandran via Digitalmars-d-learn

On Monday, 25 April 2022 at 02:22:42 UTC, Ali Çehreli wrote:


Looks good to me.
There are other ways as well:

Thanks a lot. All I wanted to implement more than ctor with 
different parameters and avoid code duplication.




Re: How to implement private constructor

2022-04-25 Thread bauss via Digitalmars-d-learn

On Monday, 25 April 2022 at 07:18:44 UTC, bauss wrote:
On Monday, 25 April 2022 at 00:18:03 UTC, Vinod K Chandran 
wrote:

Hi all,
Please take a look at this code. Is this the right way to use 
private constructors ?

```d
class Foo {
int p1 ;
string p2 ;
bool p3 ;

private this(int a, string b, bool c) {
this.p1 = a
this.p2 = b
this.p3 = c
}

this(int a) {
this(a, "some string", true);
}

this(int a, string b) {
this(a, b, true);
}
}
```


Yes and in addition to Ali's message then remember it's private 
for the module only.


Oops typo.

What I meant is that private is module level, so it's __not__ 
private in the module, but it is for other modules.


Re: How to implement private constructor

2022-04-25 Thread bauss via Digitalmars-d-learn

On Monday, 25 April 2022 at 00:18:03 UTC, Vinod K Chandran wrote:

Hi all,
Please take a look at this code. Is this the right way to use 
private constructors ?

```d
class Foo {
int p1 ;
string p2 ;
bool p3 ;

private this(int a, string b, bool c) {
this.p1 = a
this.p2 = b
this.p3 = c
}

this(int a) {
this(a, "some string", true);
}

this(int a, string b) {
this(a, b, true);
}
}
```


Yes and in addition to Ali's message then remember it's private 
for the module only.


Re: How to implement private constructor

2022-04-24 Thread Ali Çehreli via Digitalmars-d-learn

On 4/24/22 17:18, Vinod K Chandran wrote:

>  private this(int a, string b, bool c) {

Looks good to me.

There are other ways as well:

class Foo {
private:
  // ...

public:
  // ...
}

Or:

class Foo {
  private {
// ...
  }

  // ...
}

Ali



How to implement private constructor

2022-04-24 Thread Vinod K Chandran via Digitalmars-d-learn

Hi all,
Please take a look at this code. Is this the right way to use 
private constructors ?

```d
class Foo {
int p1 ;
string p2 ;
bool p3 ;

private this(int a, string b, bool c) {
this.p1 = a
this.p2 = b
this.p3 = c
}

this(int a) {
this(a, "some string", true);
}

this(int a, string b) {
this(a, b, true);
}
}
```