对“this”指针的操作是否调用构造函数?
我有一个定义如下的构造函数
Cents(int cents)
{
cout<<"in cents constructor\n";
m_cents = cents;
}
friend Cents operator + (const Cents &c1, const Cents &c2)
{
return Cents(c1.m_cents + c2.m_cents);
}
Cents operator ++ (int)
{
cout<<"In c++ function\n";
Cents c(m_cents);
*this = *this + 1 ;
return c;
}
在主要功能中,我有……
Cents c;
cout<<"Before post incrementing\n";
c++; //This part is calling the constructor thrice
现在如果我正在做一些操作,比如*this = *this + 1
. 它调用这个构造函数两次。
这里到底发生了什么。是否*this
创建一个临时对象并将值分配给原始对象?