#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Person {
public :
Person( ) ;
Person( std:: string name, int age) ;
std:: string getName( ) ;
int getAge( ) ;
virtual void print( ) ;
private :
std:: string name;
int age;
} ;
Person:: Person ( ) {
name = "" ;
age = 1 ;
}
Person( string name, int age) {
this- > name = name;
this- > age = age;
}
string Person:: getName ( ) {
return name;
}
int Person:: getAge ( ) {
return age;
}
void Person:: print ( ) {
cout << this- > getName( ) << " " << this- > getAge( ) << "\n " ;
}
class Student : public Person {
public :
Student( ) {
name = "" ;
age = 1 ;
major = "" ;
}
Student( std:: string name, int age, string major) : Person( name, age) {
this- > major = major;
}
string getMajor( ) {
return major;
}
void print( ) {
cout << this- > getName( ) << " " << this- > getAge( ) << " " << getMajor( ) << "\n " }
private :
string major;
} ;
int main( )
{
vector< Person> people;
people[ 0 ] = Person( "Tom" , 25 ) ;
people[ 1 ] = Student( "Jane" , 19 , "Computer" ) ;
people[ 2 ] = Student( "Brown" , 22 , "Management" ) ;
people[ 3 ] = Person( "Micky" , 27 ) ;
for ( int i = 0 ; i < 4 ; i++ ) {
people[ i] .print ( ) ;
cout << endl;
}
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPiAKI2luY2x1ZGUgPHZlY3Rvcj4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpjbGFzcyBQZXJzb24gewpwdWJsaWM6CglQZXJzb24oKTsKCVBlcnNvbihzdGQ6OnN0cmluZyBuYW1lLCBpbnQgYWdlKTsKCglzdGQ6OnN0cmluZyBnZXROYW1lKCk7CglpbnQgZ2V0QWdlKCk7CgoJdmlydHVhbCB2b2lkIHByaW50KCk7Cgpwcml2YXRlOgoJc3RkOjpzdHJpbmcgbmFtZTsKCWludCBhZ2U7Cn07ClBlcnNvbjo6UGVyc29uKCkgewoJbmFtZSA9ICIiOwoJYWdlID0gMTsKfQpQZXJzb24oc3RyaW5nIG5hbWUsIGludCBhZ2UpIHsKCXRoaXMtPm5hbWUgPSBuYW1lOwoJdGhpcy0+YWdlID0gYWdlOwp9CnN0cmluZyBQZXJzb246OmdldE5hbWUoKSB7CglyZXR1cm4gbmFtZTsKfQppbnQgUGVyc29uOjpnZXRBZ2UoKSB7CglyZXR1cm4gYWdlOwp9Cgp2b2lkIFBlcnNvbjo6cHJpbnQoKSB7Cgljb3V0IDw8IHRoaXMtPmdldE5hbWUoKSA8PCAiICIgPDwgdGhpcy0+Z2V0QWdlKCkgPDwgIlxuIjsKfQoKY2xhc3MgU3R1ZGVudCA6IHB1YmxpYyBQZXJzb24gewpwdWJsaWM6CglTdHVkZW50KCkgewoJCW5hbWUgPSAiIjsKCQlhZ2UgPSAxOwoJCW1ham9yID0gIiI7Cgl9CglTdHVkZW50KHN0ZDo6c3RyaW5nIG5hbWUsIGludCBhZ2UsIHN0cmluZyBtYWpvcikgOlBlcnNvbihuYW1lLCBhZ2UpIHsKCQl0aGlzLT5tYWpvciA9IG1ham9yOwoJfQoKCXN0cmluZyBnZXRNYWpvcigpIHsKCQlyZXR1cm4gbWFqb3I7Cgl9CgoJdm9pZCBwcmludCgpIHsKCQljb3V0PDwgdGhpcy0+Z2V0TmFtZSgpIDw8ICIgIjw8IHRoaXMtPmdldEFnZSgpIDw8IiAiPDwgZ2V0TWFqb3IoKTw8IlxuIiB9Cgpwcml2YXRlOgoJc3RyaW5nIG1ham9yOwp9OwoKCgoKaW50IG1haW4oKQp7Cgl2ZWN0b3I8UGVyc29uPiBwZW9wbGU7CgoJcGVvcGxlWzBdID0gUGVyc29uKCJUb20iLCAyNSk7CglwZW9wbGVbMV0gPSBTdHVkZW50KCJKYW5lIiwgMTksICJDb21wdXRlciIpOwoJcGVvcGxlWzJdID0gU3R1ZGVudCgiQnJvd24iLCAyMiwgIk1hbmFnZW1lbnQiKTsKCXBlb3BsZVszXSA9IFBlcnNvbigiTWlja3kiLCAyNyk7CgoJZm9yIChpbnQgaSA9IDA7IGkgPCA0OyBpKyspIHsKCQlwZW9wbGVbaV0ucHJpbnQoKTsKCQljb3V0IDw8IGVuZGw7Cgl9CgoJcmV0dXJuIDA7CgoKCn0=
compilation info
prog.cpp:25:14: error: expected ‘)’ before ‘name’
Person(string name, int age) {
~ ^~~~~
)
prog.cpp: In constructor ‘Student::Student()’:
prog.cpp:43:3: error: ‘std::__cxx11::string Person::name’ is private within this context
name = "";
^~~~
prog.cpp:18:14: note: declared private here
std::string name;
^~~~
prog.cpp:44:3: error: ‘int Person::age’ is private within this context
age = 1;
^~~
prog.cpp:19:6: note: declared private here
int age;
^~~
prog.cpp: In member function ‘virtual void Student::print()’:
prog.cpp:56:74: error: expected ‘;’ before ‘}’ token
cout<< this->getName() << " "<< this->getAge() <<" "<< getMajor()<<"\n" }
^~
;
stdout