前置++和后置++

#include

using namespace std;

class A
{
public:
A();
~A();
// 前置++
A& operator ++() {
++value_;
return *this;
}
// 后置++
A operator ++(int) {
A a;
a.value_ = this->value_;
++this->value_; // 对this中的value_ ++
return a; // 返回临时变量,来实现先用,用完再++,此时this实现了++
}

public:
int value_;
};

A::A() : value_(0)
{
}

void print(A param) {
std::cout << param.value_ << std::endl;
}

A::~A()
{
}

int main(void) {
A a;
print(++a);
std::cout << a.value_ << std::endl;
print(a++);
std::cout << a.value_ << std::endl;
system(“pause”);
return 0;
}

// 函数内部建立的是“临时对象”,而临时对象在函数结束后就会被系统回收;引用的特点是将“对象在此函数内值的改变”返回出去并“继续存在”,所以不能返回“对象引用”。

你可能感兴趣的:(前置++和后置++)