您可以在 graduate 的构造函数中调用基类 student 的构造函数,并在构造函数的初始化列表中初始化嵌套子对象 Birthday

具体代码如下:

class student {
public:
    student(string name, int age) : name(name), age(age) {}

    void display() {
        cout << 'Name: ' << name << endl;
        cout << 'Age: ' << age << endl;
    }

private:
    string name;
    int age;
};

class Birthday {
public:
    Birthday(int year, int month, int day) : year(year), month(month), day(day) {}

    void display() {
        cout << 'Birthday: ' << year << '/' << month << '/' << day << endl;
    }

private:
    int year;
    int month;
    int day;
};

class graduate : public student {
public:
    graduate(string name, int age, int year, int month, int day) : student(name, age), birthday(year, month, day) {}

    void display() {
        student::display();
        birthday.display();
    }

private:
    Birthday birthday;
};

graduate 的构造函数中,首先调用基类 student 的构造函数 student(name, age),然后在构造函数的初始化列表中初始化嵌套子对象 Birthday birthday(year, month, day)。这样就能够在 graduate 对象中创建并初始化 Birthday 对象。

C++ 继承中嵌套子对象初始化:使用构造函数初始化列表

原文地址: https://www.cveoy.top/t/topic/panT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录