输出下列程序的运行结果#include <iostream> using namespace std; class TEST{ int num; public: TEST(int num=0); void increment(); TEST(); }; TEST::TEST(int num):num(num){ cout<<num<<endl; } void TEST::increment() {num++;} TEST::TEST(){cout<<num<<endl;} int main() { TEST array[2]; araay[0].increment(); array[1].increment(); return 0; }
时间: 2023-11-27 13:52:37 浏览: 61
该程序存在几个语法错误,无法通过编译。下面是修正后的代码:
```
#include <iostream>
using namespace std;
class TEST{
int num;
public:
TEST(int num=0);
void increment();
};
TEST::TEST(int num):num(num){
cout<<num<<endl;
}
void TEST::increment() {
num++;
}
int main() {
TEST array[2];
array[0].increment();
array[1].increment();
return 0;
}
```
该程序的运行结果为:
```
0
0
```
因为在创建 `array` 数组时,`TEST` 类的构造函数会被默认调用两次,每次输出 `num` 的初始值 0。接着,对 `array[0]` 和 `array[1]` 调用 `increment()` 函数,将 `num` 的值分别加 1。但是,由于 `num` 是实例变量,所以对于不同的实例,其 `num` 的值也是不同的,因此 `array[0]` 和 `array[1]` 的 `num` 值增加后仍然是独立的。因此,程序最终输出:
```
1
1
```
相关问题
#include<iostream> using namespace std; class TEST { int num; public: TEST( int num=0); void increment( ) ; ~TEST( ); }; TEST::TEST(int num) : num(num) { cout << num << endl; } void TEST::increment() { num++; } TEST::~TEST( ) { cout << num << endl; } int main( ) { TEST array[2]; array[0].increment(); array[1].increment(); return 0; }加上注释并且输出结果发给我
好的,以下是加上注释的代码:
```
#include <iostream>
using namespace std;
class TEST {
int num; // 私有成员变量
public:
TEST(int num = 0); // 构造函数声明
void increment(); // 成员函数声明
~TEST(); // 析构函数声明
};
// 构造函数定义
TEST::TEST(int num) : num(num) {
cout << num << endl; // 输出num的值
}
// 成员函数定义
void TEST::increment() {
num++; // 将num加1
}
// 析构函数定义
TEST::~TEST() {
cout << num << endl; // 输出num的值
}
// 主函数
int main() {
TEST array[2]; // 定义TEST类型数组,大小为2
array[0].increment(); // 调用数组中第一个元素的increment函数
array[1].increment(); // 调用数组中第二个元素的increment函数
return 0; // 程序结束
}
```
输出结果为:
```
0
0
1
1
```
以上代码创建了一个名为TEST的类,它包含一个私有成员变量num和三个公有成员函数:构造函数TEST()、成员函数increment()和析构函数~TEST()。在主函数中,定义了一个名为array的TEST类型数组,大小为2,然后分别调用了数组中两个元素的increment()函数将它们的num成员变量加1。最后,析构函数~TEST()被自动调用,输出了数组中两个元素的num成员变量的值。
1.下面程序运行的结果 #include <iostream> using namespace std; class test{ private: int num; float f1; public: test(){cout<<"Initalizing default"<<endl;num=0;f1=0.0;} int getint(){return num;} float getfloat(){return f1;} ~test(){cout<<"Destructor is active"<<endl;} }; int main() { test array[2]; cout<<array[1].getint()<<" "<<array[1].getfloat()<<endl; return 0; }
程序的输出结果为:
```
Initalizing default
Initalizing default
0 0
Destructor is active
Destructor is active
```
程序中定义了一个名为`test`的类,包含一个默认的构造函数、一个获取整型成员变量的函数`getint()`、一个获取浮点型成员变量的函数`getfloat()`以及一个析构函数。
在`main()`函数中,定义了一个名为`array`的`test`类型的数组,数组的长度为2。因为没有给数组元素指定具体的值,所以会调用默认构造函数进行初始化,因此会输出两次"Initalizing default"。
接着,程序输出了`array[1]`的整型成员变量和浮点型成员变量,由于没有给数组元素指定具体的值,所以这两个成员变量的值都为0。
最后,`main()`函数结束,程序自动调用两次析构函数,输出"Destructor is active"。