operator++(x& a) 表示啥意思啊

天王盖地虎626 发布于 02/14 23:45
阅读 73
收藏 0

x& operator++(x& a)

operator++ 在这里表示啥意思啊?

(x& a) 括号里 x& a表示啥意思啊?

 

加载中
0
tcxu
tcxu

问: x& operator++(x& a)
答 :重载自增操作符 ++的 函数签名。

问:operator++ 在这里表示啥意思啊?
答 :表示:自增操作符 ++.

问:(x& a) 括号里 x& a表示啥意思啊?
答 :操作数为 X 类型的对象。&在此不是求地址运算符,而是起标识作用。类型标识符是指目标变量的类型。

下列代码案例,

  1. 演示以上3点回答, 以及
  2. 关于引用, 即起个别名的说明。
#include<iostream>
 using namespace std;
 class X {
     friend X & operator++(X &obj); //重载自增操作符 ++的友元函数 
 public:
     X(int a = 0, int b = 0) {//类 X 的构造方法 
         this->a = a;
         this->b = b;
     }
     void print() { //输出类 X 对象的信息 
         cout << "a:" << a << " b:" << b << endl;
     }
 private: //类X的数据成员 a, b  
     int a;  
     int b;
 };
 //前置 自增一元操作符 ++ 的定义 
 X & operator++(X &obj) {
     obj.a++;
     obj.b++;
     return obj;
 }

 int main() {
     X t1(1, 2);
     t1.print();
     ++t1;
     t1.print();
     X &t2=t1;
	 cout << "t1 的引用 t2 :" << endl; 
     t2.print();
     return 0;
 }

a:1 b:2
a:2 b:3
t1 的引用 t2 :
a:2 b:3

0
4F5DA2
4F5DA2

1. 重载“++”运算符

2. a就是自增的那个对象。比如 Class c; ++c;  c作为实参传递给a

0
魔力猫
魔力猫

工作代码里面写成这样应该抽它

返回顶部
顶部