#include <iostream>
#include <string>
using namespace std;
class PERSON
{
private :
string Pib;
string sex;
int bDay[ 3 ] ;
public :
// Constructors
PERSON( ) ;
PERSON( string name) ;
PERSON( string name, string sex) ;
PERSON( string name, string sex, int * bday) ;
PERSON( const PERSON& other) ;
~PERSON( ) ;
// Input and Output
PERSON input( ) ;
void printPerson( PERSON& data) ;
} ;
PERSON:: PERSON ( ) {
cout << "Created object without arguments!" << this << endl;
Pib = sex = "" ;
for ( int i = 0 ; i < 3 ; i++ ) {
bDay[ i] = 0 ;
}
}
PERSON:: PERSON ( string name) {
this- > Pib = name;
}
PERSON:: PERSON ( string name, string sex) : PERSON( name) {
this- > sex = sex;
}
PERSON:: PERSON ( string name, string sex, int * bday) : PERSON( name, sex) {
cout << "You created a full Person!" << this << endl;
for ( int i = 0 ; i < 3 ; i++ ) {
this- > bDay[ i] = bday[ i] ;
}
}
PERSON:: PERSON ( const PERSON& other) {
cout << "Copy constructor!" << this << endl;
this- > Pib = other.Pib ;
this- > sex = other.sex ;
for ( int i = 0 ; i < 3 ; i++ ) {
this- > bDay[ i] = other.bDay [ i] ;
}
}
PERSON:: ~PERSON( ) {
cout << "Person deleted" << this << endl;
}
int main( )
{
int nPerson;
cout << "How much Human you watn to created" << endl;
cin >> nPerson;
PERSON* human = new PERSON[ nPerson] ;
string name = "Volodia" ;
string sex = "Man" ;
//PERSON tmp(name, sex, { 28, 07, 2003 });
int tmp_array[ ] = { 28 , 07 , 2003 } ;
PERSON tmp( name, sex, tmp_array) ;
for ( int i = 0 ; i < nPerson; i++ ) {
tmp.printPerson ( human[ i] ) ;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgUEVSU09OCnsKcHJpdmF0ZToKICAgIHN0cmluZyBQaWI7CiAgICBzdHJpbmcgc2V4OwogICAgaW50IGJEYXlbM107CnB1YmxpYzoKCiAgICAvLyBDb25zdHJ1Y3RvcnMKICAgIFBFUlNPTigpOwogICAgUEVSU09OKHN0cmluZyBuYW1lKTsKICAgIFBFUlNPTihzdHJpbmcgbmFtZSwgc3RyaW5nIHNleCk7CiAgICBQRVJTT04oc3RyaW5nIG5hbWUsIHN0cmluZyBzZXgsIGludCogYmRheSk7CiAgICBQRVJTT04oY29uc3QgUEVSU09OJiBvdGhlcik7CiAgICB+UEVSU09OKCk7CiAgICAgICAgICAgIC8vIElucHV0IGFuZCBPdXRwdXQKICAgIFBFUlNPTiBpbnB1dCgpOwogICAgdm9pZCBwcmludFBlcnNvbihQRVJTT04mIGRhdGEpOwoKfTsKClBFUlNPTjo6UEVSU09OKCkgewogICAgY291dCA8PCAiQ3JlYXRlZCBvYmplY3Qgd2l0aG91dCBhcmd1bWVudHMhIiA8PCB0aGlzIDw8IGVuZGw7CiAgICBQaWIgPSBzZXggPSAiIjsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgaSsrKSB7CiAgICAgICAgYkRheVtpXSA9IDA7CiAgICB9Cn0KClBFUlNPTjo6UEVSU09OKHN0cmluZyBuYW1lKSB7CiAgICB0aGlzLT5QaWIgPSBuYW1lOwp9CgpQRVJTT046OlBFUlNPTihzdHJpbmcgbmFtZSwgc3RyaW5nIHNleCkgOiBQRVJTT04obmFtZSkgewogICAgdGhpcy0+c2V4ID0gc2V4Owp9CgpQRVJTT046OlBFUlNPTihzdHJpbmcgbmFtZSwgc3RyaW5nIHNleCwgaW50KiBiZGF5KSA6IFBFUlNPTihuYW1lLCBzZXgpewogICAgY291dCA8PCAiWW91IGNyZWF0ZWQgYSBmdWxsIFBlcnNvbiEiIDw8IHRoaXMgPDwgZW5kbDsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgaSsrKSB7CiAgICAgICAgdGhpcy0+YkRheVtpXSA9IGJkYXlbaV07CiAgICB9Cn0KClBFUlNPTjo6UEVSU09OKGNvbnN0IFBFUlNPTiYgb3RoZXIpIHsKICAgIGNvdXQgPDwgIkNvcHkgY29uc3RydWN0b3IhIiA8PCB0aGlzIDw8IGVuZGw7CiAgICB0aGlzLT5QaWIgPSBvdGhlci5QaWI7CiAgICB0aGlzLT5zZXggPSBvdGhlci5zZXg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICBmb3IgKGludCBpID0gMDsgaSA8IDM7IGkrKykgewogICAgICAgIHRoaXMtPmJEYXlbaV0gPSBvdGhlci5iRGF5W2ldOwogICAgfQp9CgpQRVJTT046On5QRVJTT04oKSB7CiAgICBjb3V0IDw8ICJQZXJzb24gZGVsZXRlZCIgPDwgdGhpcyA8PCBlbmRsOwp9CgoKaW50IG1haW4oKQp7CiAgICBpbnQgblBlcnNvbjsKICAgIGNvdXQgPDwgIkhvdyBtdWNoIEh1bWFuIHlvdSB3YXRuIHRvIGNyZWF0ZWQiIDw8IGVuZGw7CiAgICBjaW4gPj4gblBlcnNvbjsKICAgIFBFUlNPTiogaHVtYW4gPSBuZXcgUEVSU09OW25QZXJzb25dOwogICAgc3RyaW5nIG5hbWUgPSAiVm9sb2RpYSI7CiAgICBzdHJpbmcgc2V4ID0gIk1hbiI7CiAgICAvL1BFUlNPTiB0bXAobmFtZSwgc2V4LCB7IDI4LCAwNywgMjAwMyB9KTsKICAgIAppbnQgdG1wX2FycmF5W10gPSB7IDI4LCAwNywgMjAwMyB9OwpQRVJTT04gdG1wKG5hbWUsIHNleCwgdG1wX2FycmF5KTsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG5QZXJzb247IGkrKykgewogICAgICAgIHRtcC5wcmludFBlcnNvbihodW1hbltpXSk7CiAgICB9Cn0K