#include <cstring>
#include <iostream>
class quee
{
private:
char *p;
int next;
public:
quee() :
p(new char[2] {'a', '\0'}),
next(0)
{
}
quee(const quee &obj)
{
std::cout << "quee(const quee &obj)" << std::endl;
p = new char[strlen(obj.p)];
strcpy(p, obj.p);
next = obj.next;
}
quee &operator=(quee &obj)
{
std::cout << "quee &operator=(quee &obj)" << std::endl;
delete[] p;
p = new char[strlen(obj.p) + 1];
strcpy(p, obj.p);
next = obj.next;
return *this;
}
};
int main()
{
quee a;
quee b = a;
b = a;
return 0;
}
I2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDxpb3N0cmVhbT4KIApjbGFzcyBxdWVlCnsKcHJpdmF0ZToKICAgIGNoYXIgKnA7CiAgICBpbnQgbmV4dDsKIApwdWJsaWM6CiAgICBxdWVlKCkgOgogICAgICAgIHAobmV3IGNoYXJbMl0geydhJywgJ1wwJ30pLAogICAgICAgIG5leHQoMCkKICAgIHsKIAogICAgfQogCiAgICBxdWVlKGNvbnN0IHF1ZWUgJm9iaikKICAgIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgInF1ZWUoY29uc3QgcXVlZSAmb2JqKSIgPDwgc3RkOjplbmRsOwogICAgICAgIHAgPSBuZXcgY2hhcltzdHJsZW4ob2JqLnApXTsKICAgICAgICBzdHJjcHkocCwgb2JqLnApOwogICAgICAgIG5leHQgPSBvYmoubmV4dDsKICAgIH0KIAogICAgcXVlZSAmb3BlcmF0b3I9KHF1ZWUgJm9iaikKICAgIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgInF1ZWUgJm9wZXJhdG9yPShxdWVlICZvYmopIiA8PCBzdGQ6OmVuZGw7CiAgICAgICAgZGVsZXRlW10gcDsKICAgICAgICBwID0gbmV3IGNoYXJbc3RybGVuKG9iai5wKSArIDFdOwogICAgICAgIHN0cmNweShwLCBvYmoucCk7CiAgICAgICAgbmV4dCA9IG9iai5uZXh0OwogICAgICAgIHJldHVybiAqdGhpczsKICAgIH0KfTsKIAppbnQgbWFpbigpCnsKICBxdWVlIGE7CiAgcXVlZSBiID0gYTsKICBiID0gYTsKICByZXR1cm4gMDsKfQ==