#include <iostream>
#include <string>
#include <cstring>
class Person
{
private:
std::string lname;
char *fname;
public:
Person() : Person("{null}", "{null}") {}
Person(const std::string &ln)
: Person()
{
lname = ln;
}
Person(const std::string &ln, const char *fn)
: lname(ln), fname( new char [strlen(fn) + 1] )
{
strcpy(fname, fn);
}
~Person()
{
delete [] fname;
}
void Show() const
{
std::cout << fname << " " << lname << std::endl;
}
void FormalShow() const
{
std::cout << lname << ", " << fname << std::endl;
}
};
int main()
{
Person one;
Person two("Smythecraft");
Person three("Dimwiddy", "Sam");
one.Show();
one.FormalShow();
std::cout << std::endl;
two.Show();
two.FormalShow();
std::cout << std::endl;
three.Show();
three.FormalShow();
std::cout << std::endl;
system("pause");
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8Y3N0cmluZz4KCmNsYXNzIFBlcnNvbgp7CnByaXZhdGU6CiAgICBzdGQ6OnN0cmluZyBsbmFtZTsKICAgIGNoYXIgKmZuYW1lOwoKcHVibGljOgogICAgUGVyc29uKCkgOiBQZXJzb24oIntudWxsfSIsICJ7bnVsbH0iKSB7fQoKICAgIFBlcnNvbihjb25zdCBzdGQ6OnN0cmluZyAmbG4pCgkJOiBQZXJzb24oKQoJewoJCWxuYW1lID0gbG47Cgl9CgogICAgUGVyc29uKGNvbnN0IHN0ZDo6c3RyaW5nICZsbiwgY29uc3QgY2hhciAqZm4pCgkJOiBsbmFtZShsbiksIGZuYW1lKCBuZXcgY2hhciBbc3RybGVuKGZuKSArIDFdICkKCXsKCQlzdHJjcHkoZm5hbWUsIGZuKTsKCX0KCiAgICB+UGVyc29uKCkKICAgIHsKICAgIAlkZWxldGUgW10gZm5hbWU7CiAgICB9CgogICAgdm9pZCBTaG93KCkgY29uc3QKICAgIHsKICAgIAlzdGQ6OmNvdXQgPDwgZm5hbWUgPDwgIiAiIDw8IGxuYW1lIDw8IHN0ZDo6ZW5kbDsKICAgIH0KCiAgICB2b2lkIEZvcm1hbFNob3coKSBjb25zdAogICAgewogICAgCXN0ZDo6Y291dCA8PCBsbmFtZSA8PCAiLCAiIDw8IGZuYW1lIDw8IHN0ZDo6ZW5kbDsKICAgIH0KfTsKCgppbnQgbWFpbigpCnsKCVBlcnNvbiBvbmU7CglQZXJzb24gdHdvKCJTbXl0aGVjcmFmdCIpOwoJUGVyc29uIHRocmVlKCJEaW13aWRkeSIsICJTYW0iKTsKCglvbmUuU2hvdygpOwoJb25lLkZvcm1hbFNob3coKTsKCglzdGQ6OmNvdXQgPDwgc3RkOjplbmRsOwoJdHdvLlNob3coKTsKCXR3by5Gb3JtYWxTaG93KCk7CgoJc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKCXRocmVlLlNob3coKTsKCXRocmVlLkZvcm1hbFNob3coKTsKCXN0ZDo6Y291dCA8PCBzdGQ6OmVuZGw7CiAgICBzeXN0ZW0oInBhdXNlIik7Cn0K