#include <iostream>
#include <string>
// complex.h
namespace CN {
class complex {
public:
complex(int num);
friend std::string to_string(const complex &c);
friend std::ostream& operator<<(std::ostream& out, const complex& o);
friend std::istream& operator>>(std::istream& in, complex& o);
private:
int i;
};
}
// complex.cpp
// #include "complex.h"
namespace CN {
complex::complex(int num) {
i = num;
}
std::string to_string(const complex &mc)
{
return std::to_string(mc.i);
}
std::ostream& operator<<(std::ostream &out, const CN::complex &mc)
{
out << "CN::complex(" << to_string(mc) << ")";
return out;
}
std::istream& operator>>(std::istream &in, CN::complex &mc)
{
in >> mc.i;
return in;
}
}
//
int main() {
CN::complex complex(111);
std::cin >> complex;
std::cout << complex << std::endl;
std::cout << to_string(complex) << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKLy8gY29tcGxleC5oCm5hbWVzcGFjZSBDTiB7CmNsYXNzIGNvbXBsZXggewpwdWJsaWM6CiAgICBjb21wbGV4KGludCBudW0pOwogICAgZnJpZW5kIHN0ZDo6c3RyaW5nIHRvX3N0cmluZyhjb25zdCBjb21wbGV4ICZjKTsKICAgIGZyaWVuZCBzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBvdXQsIGNvbnN0IGNvbXBsZXgmIG8pOwogICAgZnJpZW5kIHN0ZDo6aXN0cmVhbSYgb3BlcmF0b3I+PihzdGQ6OmlzdHJlYW0mIGluLCBjb21wbGV4JiBvKTsKICAgIApwcml2YXRlOgogICAgaW50IGk7Cn07Cn0KCi8vIGNvbXBsZXguY3BwCi8vICNpbmNsdWRlICJjb21wbGV4LmgiCgpuYW1lc3BhY2UgQ04gewpjb21wbGV4Ojpjb21wbGV4KGludCBudW0pIHsKICAgIGkgPSBudW07Cn0KCnN0ZDo6c3RyaW5nIHRvX3N0cmluZyhjb25zdCBjb21wbGV4ICZtYykKewogICAgcmV0dXJuIHN0ZDo6dG9fc3RyaW5nKG1jLmkpOwp9CgpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtICZvdXQsIGNvbnN0IENOOjpjb21wbGV4ICZtYykKewogICAgb3V0IDw8ICJDTjo6Y29tcGxleCgiIDw8IHRvX3N0cmluZyhtYykgPDwgIikiOwogICAgcmV0dXJuIG91dDsKfQoKc3RkOjppc3RyZWFtJiBvcGVyYXRvcj4+KHN0ZDo6aXN0cmVhbSAmaW4sIENOOjpjb21wbGV4ICZtYykKewogICAgaW4gPj4gbWMuaTsKICAgIHJldHVybiBpbjsKfQp9CgovLwppbnQgbWFpbigpIHsKICAgIENOOjpjb21wbGV4IGNvbXBsZXgoMTExKTsKICAgIHN0ZDo6Y2luID4+IGNvbXBsZXg7CiAgICBzdGQ6OmNvdXQgPDwgY29tcGxleCA8PCBzdGQ6OmVuZGw7CiAgICBzdGQ6OmNvdXQgPDwgdG9fc3RyaW5nKGNvbXBsZXgpIDw8IHN0ZDo6ZW5kbDsKfQ==