递增运算符重载

#include <iostream>

class Person
{
public:
   void age_set(int age)
   {
      m_age = age;
   }

   int age_get()
   {
       return m_age;
   }

   /* 前置++ */
   Person &operator++()
   {
      ++m_age;
      return *this;
   }

   /* 后置++ */
   Person operator++(int)
   {
      Person p = *this;
      m_age++;
      return p;
   }

private:
   int m_age;
};

int main()
{
   Person p;
   p.age_set(10);

   std::cout << (++p).age_get() << std::endl; 
   std::cout << (p++).age_get() << std::endl; 
   std::cout << p.age_get() << std::endl; 

   return 0;
}
$ ./a.out          
11
11
12
posted @   thomas_blog  阅读(30)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示