Re: Array of pointers

2014-01-19 Thread Arjan Fetahu


Keep in mind that, unlike in c++, D classes are reference 
types:


class Node
{
   Node[] nodes; // This is valid
}

Structs are value types though, so using a struct in the above 
example is illegal.


You mean:

struct Node {
Node[] nodes;
}


or


struct Node {
Node*[] nodes;
}


? Works both.

What's not working is this:

struct Node {
Node node;
}



I wanted to heap allocate Nodes which connect to each other via 
pointers. Since each Node connects to multiple others i came up 
with this solution.


class Node {
 auto content;
 Node*[] nodes;
 //..constructor..
}


Re: Array of pointers

2014-01-19 Thread Arjan Fetahu
Nodes are reference types in D, so probably you don't need to 
use a * for Node. Alternatively use a struct handled by pointer.


auto content; can't compile, you need a type, or you have to 
template Node on T and use it for content.


Bye,
bearophile


Youre right, it compiles now, and the object generated is of the 
same size.
I'm still confusing with C. I have some experience with C 
experience, so I still have to learn tamplates.


Thaks for the help.

Arjan


Array of pointers

2014-01-16 Thread Arjan Fetahu
Hi. I started my first program in D (I have a little experience 
in c).
I wanted to create an array of pointers for creating a node with 
multiple
connections. In C you can make one directly (node *nedePtr[]). 
What is the equivalent for the D's syntax??


Regards
Arjan


Re: Array of pointers

2014-01-16 Thread Arjan Fetahu

On Thursday, 16 January 2014 at 09:00:18 UTC, Namespace wrote:
On Thursday, 16 January 2014 at 08:55:43 UTC, Arjan Fetahu 
wrote:
Hi. I started my first program in D (I have a little 
experience in c).
I wanted to create an array of pointers for creating a node 
with multiple
connections. In C you can make one directly (node *nedePtr[]). 
What is the equivalent for the D's syntax??


Regards
Arjan


node*[] nedePtr;


Ok. Thank You!