【发布时间】:2017-03-16 01:41:09
【问题描述】:
我正在尝试修改 code I found,但由于我不了解此虚拟运算符的目的、重要性和/或相关性而受阻:
- 有人可以提供有关此运算符为何必要或有用的见解吗?
- 我认为将
parentItem()、rect_和resizer_作为参数,然后修改resizer_的值是否正确?
.h 中的构造函数:
virtual void operator()(QGraphicsItem* item, const QRectF& rect) = 0;
调用.cpp:
(*resizer_)(parentItem(), rect_);
构造函数的修剪上下文以供参考:
class SizeGripItem : public QGraphicsItem
{
private:
class HandleItem : public QGraphicsRectItem
{
public:
HandleItem(int positionFlags, SizeGripItem* parent);
private:
SizeGripItem* parent_;
};
public:
class Resizer
{
public:
virtual void operator()(QGraphicsItem* item,
const QRectF& rect) = 0;
};
SizeGripItem(Resizer* resizer = 0, QGraphicsItem* parent = 0);
virtual ~SizeGripItem();
private:
void doResize();
QRectF rect_;
Resizer* resizer_;
};
【问题讨论】:
-
看起来像函数对象。
-
看起来
Resizer是一种回调方式,以便SizeGripItem的客户端可以在set_x_成员函数之一(调用doResize()) 被调用。
标签: c++ qt c++11 virtual operator-keyword