#include <iostream>
#include <typeinfo>
using namespace std;
class Person {
protected:
string name;
public:
Person(string name = "") : name(name) {};
virtual ~Person() {}
string getInfo() { return name; }
};
class Student : public Person {
string studentid;
public:
Student(string name = "", string sid = "") : Person(name), studentid(sid) {};
string getInfo() { return name + ":" + studentid; }
};
int main() {
string s("hello");
cout << "typeid.name of s is " << typeid(s).name() << endl;
cout << "typeid.name of std::string is " << typeid(std::string).name() << endl;
cout << "typeid.name of Student is " << typeid(Student).name() << endl;
if (typeid(std::string) == typeid(s)) cout << "s is a std::string object." << endl;
return 0;
}