#include <iostream>
#include <string>class Person {
public:std::string name;int age;// 主构造函数Person(const std::string& name, int age) : name(name), age(age) {std::cout << "Person created with name: " << name << " and age: " << age << std::endl;}// 委托构造函数Person() : Person("Unknown", 0) {std::cout << "Person created with default name and age." << std::endl;}
};class Student : public Person {
public:std::string major;// 继承Person类的构造函数,语法就是这句,这里继承了父类的所有构造函数using Person::Person;// Student类的构造函数,没有我也能直接调用父类的Student(const std::string& name, int age, const std::string& major): Person(name, age), major(major) {std::cout << "Student created with major: " << major << std::endl;}
};int main() {Student s1("Alice", 20, "Computer Science"); // 调用Student类的构造函数Student s2("Bob", 22); // 调用继承的Person类的构造函数Student s3; // 调用继承的Person类的默认构造函数return 0;
}
和委托构造函数有点类似,继承了来自于父类的构造函数。
输出结果