我遇到过一些 C++ code.Why 我们必须在块中使用 *this 而不是 this?
I have come across some C++ code.Why we have to use *this in block instead of this?
我有以下代码,我想知道为什么它使用 *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!
}
};
this
是指向对象的 指针 。复制构造函数需要对象的 reference。将指针转换为引用的方法是使用取消引用 *
运算符。
我有以下代码,我想知道为什么它使用 *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!
}
};
this
是指向对象的 指针 。复制构造函数需要对象的 reference。将指针转换为引用的方法是使用取消引用 *
运算符。