On Thursday, 30 November 2017 at 00:40:51 UTC, 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.
I made an example demonstrating what I'd do in C++:
class SomeType
{
public:
std::string text;
SomeType(std::string input) {text = input;}
};
int main()
{
SomeType foo = SomeType("Hello");
SomeType* bar = &foo;
foo = SomeType("World");
std::cout << bar->text << "\n"; // Prints World
}