前置++既然返回了对象本身,那么为什么修改e的值不会影响到d呢
来源:8-6 前置与后置操作符
三尺357159
2024-06-18
Complex a(3.0, 2.0);
Complex b(2.0, 3.0);
Complex c = a + b;
Complex d(c); // 5.0 5.0
Complex e;
e = ++d; // e =6.0 6.0 d = 6.0 6.0
cout << e.image() << " " << e.real() << endl;
cout << d.image() << " " << d.real() << endl;
e.real(9.0);
cout << e.image() << " " << e.real() << endl; 输出 6 9
cout << d.image() << " " << d.real() << endl; // 这里输出的还是6 6而不是 6 9
老师,前置++返回的是引用对象本身,那么为什么修改e的属性,不会影响到d呢,e跟d不是使用同一块内存空间的吗
写回答
1回答
-
前置增量操作符++d返回d的引用,赋值操作符e = ++d将d的值拷贝给e。这意味着e和d在赋值后虽然值相同,但它们是两个独立的对象,存储在不同的内存空间中。因此,修改e的值不会影响d的值。
012024-06-19
相似问题