三道C++求运行结果的题,我是新手,不太懂,希望可以有大神帮忙讲解一下。

2024-11-08 13:38:25
推荐回答(1个)
回答(1):

// 包含头iostream
#include
// 使用命名空间std
using namespace std;

// 定义全局变量n,初始值0
int n=0;
// 定义类A
class A
{
// 定义默认权限的成员变量a
int a;
public:
// 定义类A的初始化函数;无实参时,默认形参=0
A(int aa=0)
{
// 成员变量a=参数赋值
a=aa;
// 全局变量n++
n++;
}
// 定义类A的析构函数
~A()
{
// 全局变量n--
n--;
// 输出n的大小及换行符
cout< }
//无返回值的函数show(),输出n的大小及换行符
void show()
{
cout< }
};

void main()
{
// 定义类A的对象a
A a;
// 由于在a使用前未执行a的初始化函数,因此a默认为0,n=1
// 所以a.show()输出为"1\n"
a.show();
// 程序块
{
// 定义了类A的对象数组x[2],x[2]包含两个元素
A x[2];
// 由于在a使用前未执行a的初始化函数,因此a默认为0,n自加2次为3
// 所以a.show()输出为"3\n"
x[1].show();
// x[2]的作用与结束,调用其析构函数,n自减两次为1
}
// a.show()输出为"3\n"
a.show();
}