#include <iostream>
class Person
{
public:
Person(int age):
m_age(age)
{
}
~Person()
{
}
void func()
{
std::cout << "Person func" << std::endl;
}
void func(int)
{
std::cout << "Student func(int)" << std::endl;
}
public:
int m_age;
};
class Student: public Person
{
public:
Student(int age):
m_age(age),
Person(age * 2)
{
}
void func()
{
std::cout << "Student func" << std::endl;
}
public:
int m_age;
};
int main()
{
Student s(10);
std::cout << "Student age " << s.m_age << std::endl;
std::cout << "Person age " << s.Person::m_age << std::endl;
s.func();
s.Person::func();
/* 如果子类出现和父类同名的成员函数,子类的同名成员函数会隐藏掉父类中所有同名成员函数 */
/* 如果想访问,需要加作用域 */
//s.func(30);
s.Person::func(30);
return 0;
}
$ ./a.out
Student age 10
Person age 20
Student func
Person func
Student func(int)