我问这个问题很愚蠢,因为它看起来很简单,但我不知道该怎么做,也无法在互联网上的任何地方找到它。我正在尝试创建一个将QList返回到标准输出的函数,指向抽象类的指针使我感到困惑。 AbstractStudent类生成另一个类Student的实例。这是函数:

QList<AbstractStudent*>* StudentList::returnList() const{


}

最佳答案

存储抽象类的指针的列表将能够存储指向该抽象类的任何子类的指针。

考虑以下几点:

AbstractStudent.h:

class AbstractStudent
{
    // ...
};

Student.h:
class Student : public AbstractStudent
{
    // ...
};

任何其他类.cpp:
QList< AbstractStudent* > studentList;

// Each of the following works:
AbstractStudent* student1 = new Student( /* ... */ );
studentList.append( student1 );

Student* student2 = new Student( /* ... */ );
studentList.append( student2 );

Student* student3 = new Student( /* ... */ );
AbstractStudent* student3_1 = student3;
studentList.append( student3 );

但是,我对您的最后一句话有些困惑,声称AbstractStudent生成Student对象。我希望Student可以继承AbstractStudent,而其他一些类可以生成Student对象,例如在我的示例中。

关于c++ - QList指向抽象类的指针函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18910446/

10-11 02:40