下列程序的运行结果是:7 6 。 请将程序中的空白填写完整。 #include <iostream> using namespace std; class A { public: A(int i) :x(i) {} A() {x = 0;} friend A operator ++(A a); friend A operator --(A &a); void print(); private: int x; }; A operator++(A a) {________;//【空①】 return a;} A operator--(A &a) {________;//【空②】 return a;} void A::print() {cout << x << endl;} int main() { A a(7); ________;//【空③】 a.print(); ________;//【空④】 a.print(); return 0; }
时间: 2024-01-13 14:05:12 浏览: 15
下面是程序填空后的完整代码:
```
#include <iostream>
using namespace std;
class A {
public:
A(int i) :x(i) {}
A() { x = 0; }
friend A operator ++(A a);
friend A operator --(A &a);
void print();
private:
int x;
};
A operator++(A a)
{
++a.x;
return a;
}
A operator--(A &a)
{
--a.x;
return a;
}
void A::print()
{
cout << x << endl;
}
int main()
{
A a(7);
++a;
a.print();
--a;
a.print();
return 0;
}
```
程序中定义了一个名为 A 的类,该类有一个私有成员变量 x 和一个公有的构造函数。同时还定义了两个友元函数 operator++ 和 operator--,分别用于实现 A 类型的前置自增和前置自减运算。在主函数中,首先创建一个 A 类型的对象 a,并将其初始化为 7。然后分别使用前置自增和前置自减运算符,对 a 进行自增和自减操作,并分别输出操作后的结果。
程序运行后的输出结果为:
```
8
7
```
可以看出,程序中先将 a 自增 1,再将 a 自减 1,因此输出结果为 8 和 7。