工程公司会计分录seo需要会什么
前言
int a=1;cout << ++(++a) << endl;cout << a << endl;int b=1;cout << (b++)++ << endl; // 这个是错误的cout << b << endl;
上面样例中,
前置 ++ 返回的是引用,所以a 的值变成了3
后置 ++ 返回的不是可以改变的左值,所以有问题
正文
我们来看看下面的学习代码
#define CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;class MyInterger
{friend ostream& operator<<(ostream& cout, MyInterger& p);
public:MyInterger(){m_Num = 10;}// 前置++ 运算符重置MyInterger& operator++(){m_Num++;return *this;}// 后置 ++ 运算符重置// 返回值不能作为重载的区分条件MyInterger& operator++(int) // int 代表一个占位参数,用于区分前置和后置++{// 先记录当时的结果MyInterger* tmp = new MyInterger(*this); // 在堆上分配一个 MyInterger 对象的副本// 后 递增m_Num++;// 最后将记录结果做返回return *tmp;}private:int m_Num;
};ostream& operator<<(ostream& cout, MyInterger& p)
{cout << p.m_Num;return cout;
}void test()
{MyInterger myint;cout << ++(++myint) << endl;cout << myint++ << endl;
}int main()
{test();return 0;
}