次のコードをどこかで見ました。
class Person {
private:
string *customerName;
public:
Person() {customerName = new string;}
void setCustomerName(char *s) {*customerName = s;}
};
int main()
{
Person person1;
Person person2;
person1.setCustomerName("Malcolm");
person2 = person1;
}
person1 と person2 はすべて同じメモリを指していますか? person1 が削除された場合、または person2 が削除された場合はどうなりますか? 他のオブジェクトが破損する原因になりますか? またはメモリリーク?