c++ 学习笔记 多继承

听说多继承有一些风险,其他高级语言例如Java c#等只支持基本的(不知道Python怎么说)。

看见了一个例子可以很好的理解多继承是什么意思以及大概的用法:

class Person
{
public:
    Person(std::string theName);

    void introduce();

protected:
    std::string name;
};

class Teacher : public Person
{
public:
    Teacher(std::string theName, std::string theClass);

    void teach();
    void introduce();

protected:
    std::string classes;
};

class Student : public Person
{
public:
    Student(std::string theName, std::string theClass);

    void attendClass();
    void introduce();

protected:
    std::string classes;
};

class TeachingStudent : public Student, public Teacher
{
public:
    TeachingStudent(std::string theName, std::string classTeaching, std::string classAttending);
    void introduce();
};

老师类和学生类都是人的子类,助教则既是老师类辅导学生,同时自身也是学生类。

//用构造器初始化:
TeachingStudent::TeachingStudent(std::string theName,
                                 std::string classTeaching,
                                 std::string classAttending)
                                 : Teacher(theName, classTeaching), Student(theName, classAttending)
{
	
}

里面的introduce方法就可以调用两个类中的参数和方法了

void TeachingStudent::introduce()
{
    std::cout << "大家好,我是" << Student::name << "。我教" << Teacher::classes << ", ";
    std::cout << "同时我在" << Student::classes << "学习。\n\n";
}

同时也可以这样写:

void TeachingStudent::introduce()
{
    Teacher::introduce();
    Student::introduce();
}

猜你喜欢

转载自blog.csdn.net/u012693077/article/details/79619588