0
我有一個像PrintableObject*
型的QList:C++ QT鑄造到子類中的項目的QList
QList<PrintableObject*> drawables;
這個列表包含PrintableX
這是插入喜歡的PrintableObject
子類類型的對象:
drawables += &PrintableLine(x, y, x2, y2);
在此之後,我使用列表一個循環,我確定實際類型,做一個演員,並嘗試使用它:
foreach(PrintableObject* drawable, drawables){
if(drawable->myClassName == "PrintableLine") {
PrintableLine* line = (PrintableLine*) drawable;
painter.drawLine(line->x, line->y, line->x2, line->y2);
} else if (drawable->myClassName == "PrintableString") {
PrintableString* string = (PrintableString*) drawable;
font.setPointSize(string->fontSize);
painter.setFont(font);
painter.drawText(string->x, string->y, string->width, string->height, Qt::AlignHCenter | Qt::AlignTop, string->string "if I say?");
}
}
除了,當我嘗試使用我的新閃亮降級對象時,它會產生分段錯誤...
有什麼建議嗎?
謝謝你,你救了我的命!我不是一個C++程序員,但無論如何都要做。至於RTTI,我知道這是一件壞事,但有時我們都必須編寫一些臭的代碼:) – Zhigalin
@Zhigalin快樂地拯救自己的生命:-)注意:一定要刪除您分配的對象。 –