Passing Structs to function like in C
Cauterite via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sun Aug 14 13:46:55 PDT 2016
On Sunday, 14 August 2016 at 16:21:58 UTC, D.Rex wrote:
> so '&foo.bar();' works the same as 'foo.bar();'?
with pointers, D automatically rewrites expressions like this:
f.fooMethod()
to this:
(*f).fooMethod()
which is why you're able to index an object-pointer-pointer
(Foo*) the same way as an object-pointer (Foo).
Most built-in D types have value semantics, so it's
understandable that you wouldn't expect classes to be reference
types.
Associative arrays are also reference types, FYI.
Structs on the other hand are value types; if you're new to the
language make sure you familiarise yourself with the differences
between structs and classes.
More information about the Digitalmars-d-learn
mailing list