I examined the Diagram Scene Example and faced this code:
void DiagramItem::removeArrows()
{
foreach (Arrow *arrow, arrows) {
arrow->startItem()->removeArrow(arrow);
arrow->endItem()->removeArrow(arrow);
scene()->removeItem(arrow);
delete arrow;
}
}
void DiagramItem::removeArrows()
{
foreach (Arrow *arrow, arrows) {
arrow->startItem()->removeArrow(arrow);
arrow->endItem()->removeArrow(arrow);
scene()->removeItem(arrow);
delete arrow;
}
}
To copy to clipboard, switch view to plain text mode
Where Arrow is:
class Arrow : public QGraphicsLineItem
To copy to clipboard, switch view to plain text mode
My question is, whether it is better to implement DiagramItem::removeArrows() method that way instead of overriding the Arrow's destructor:
Arrow::~Arrow() //Virtual destructor
{
startItem()->removeArrow(this);
endItem()->removeArrow(this);
}
Arrow::~Arrow() //Virtual destructor
{
startItem()->removeArrow(this);
endItem()->removeArrow(this);
}
To copy to clipboard, switch view to plain text mode
Then DiagramItem::removeArrows() would look like:
void DiagramItem::removeArrows()
{
foreach (Arrow *arrow, arrows) {
scene()->removeItem(this);
delete arrow;
}
}
void DiagramItem::removeArrows()
{
foreach (Arrow *arrow, arrows) {
scene()->removeItem(this);
delete arrow;
}
}
To copy to clipboard, switch view to plain text mode
Bookmarks