我有以下代码,我想知道为什么它使用*this
代替this
。
class Quotation
{
protected:
int value;
char* type;
public:
virtual Quotation* clone()=0;
char * getType()
{
return type;
}
int getValue()
{
return value;
}
};
class bikeQuotation : public Quotation
{
public:
bikeQuotation(int number)
{
value=number;
type="BIKE";
}
Quotation * clone()
{
return new bikeQuotation(*this); // <-- Here!
}
};
答案 0 :(得分:4)
this
是对象的指针。复制构造函数需要引用到对象。将指针转换为引用的方式是使用解引用*
运算符。