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