On 11/29/17 7:40 PM, David Colson wrote:
Hello all!

I'm getting settled into D and I came into a problem. A code sample shows it best:

class SomeType
{
     string text;
     this(string input) {text = input;}
}


void main()
{
     SomeType foo = new SomeType("Hello");

     SomeType bar = foo;

     foo = new SomeType("World");

     writeln(bar.text); // Prints hello
     // I'd like it to print World
}

In the C++ world I could do this using pointers and changing the data underneath a given pointer, but I can't use pointers in D, so I'm not sure how I can get this behaviour?

I'd be open to other ways of achieving the same affect in D, using more D like methods.

D does not support reassigning class data using assignment operator, only the class reference. You can change the fields individually if you need to.

e.g.:

foo.text = "World";

structs are value types in D and will behave similar to C++ classes/structs.

-Steve

Reply via email to