Probably not. If the old string that ps pointed to is no longer pointed to by any other pointer, it's lost, and you have a memory leak. But I can't say for sure because I don't know how your class is supposed to function.
Do you really have to use pointers here. Why not simply store a string variable?
I'm using pointer string because of exercise in book c++ primer. Otherwise I would use smart pointers... Tho I did try using the one with just copying pointer and I didn't get any memory leaks...