class Cell : public QTableWidgetItem
{
public:
Cell();
QTableWidgetItem *clone() const;
...
}
以上是Qt程序中的类定义。 以下是其余部分。为什么*这可以作为&type?
QTableWidgetItem *Cell::clone() const
{
return new Cell(*this);
}
我的问题是关于最后一句,如果我改变它喜欢:
return new Cell(this);
随后的Qt将给错误消息:
为什么?我明白this
是一个指针,不能是参数。 但*this
可能是&
类型?
因为'* this *'是一个'Cell'。将一个'Cell'作为一个实际参数传递给一个接受'Cell&'作为其形式参数的函数在C++中是完全正确的,并且将通过引用传递该参数。这与您如何初始化参考变量类似。 – Michael 2013-03-16 08:07:39
谢谢你的好解释! – 2013-03-16 08:20:43
@Michael你的优秀评论错过了“你的答案”框几英寸。下次更好运! – 2013-03-16 08:21:30