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