c++中递增运算符的重载
要注意递增递减运算符有前置和后置的问题,使用类内定义,在形参上使用给一个int站位符,编译器会把有占位符的定义为后置,前置运算正常进行,返回一个引用
后置运算要返回一个值,而不是引用,因为实际的值已经改变了,返回的值是一个改变前的,因为这个值是用局部变量保存的,所以不能返回引用,因为相同的原因,在调用这个返回值的是时候只能使用拷贝运算而不能使用引用,所以operator<<也做了相应修改,
class Person
{
public:
Person();
Person & operator++ ();
Person operator++(int);
int m_a;
private:
int m_b;
};
Person & Person::operator++()
{
this->m_a++;
return *this;
}
Person Person::operator++(int)
{
Person temp = *this;
m_a++;
return temp;
}
Person::Person()
{
m_a = 10;
m_b = 10;
}
ostream & operator<< (ostream &cout,Person p)
{
cout << p.m_a ;
return cout;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)