有关运算符重载部分https://blog.csdn.net/qq_58665528/article/details/122420553
#include <iostream> class Person { private: int m_age; public: Person(int age) : m_age(age){} Person& operator=(const Person& person) { this->m_age = person.m_age; return *this; } void getAge() { std::cout << this->m_age << std::endl; } }; class Student : public Person { private: int m_id; public: Student(int age = 0, int id = 0) : Person::Person(age), m_id(id){} //初始化父类和子类的私有变量 Student& operator=(const Student& student) { Person::operator=(student); //调用父类的重载运算符,这样父类的私有变量也能赋值了 this->m_id = student.m_id; return *this; } void getIdAge() { Person::getAge(); std::cout << this->m_id << std::endl; } }; int main(void) { Student s = Student(10, 2001); Student ss = s; ss.getIdAge(); return 0; }