输出下列程序的运行结果#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 10:52:37 浏览: 139
该程序存在几个语法错误,无法通过编译。下面是修正后的代码:
```
#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; }
这段代码的作用是定义了一个名为TEST的类,该类包含一个int类型的成员变量num和三个成员函数:构造函数TEST()、成员函数increment()和析构函数~TEST()。其中构造函数TEST()在对象创建时被调用,increment()函数用于将num成员变量加1,析构函数~TEST()在对象销毁时被调用。
在主函数中,定义了一个名为array的TEST类型数组,数组的大小为2。然后依次调用数组中两个元素的increment()函数,将它们的num成员变量加1。最后程序结束,数组中两个元素的num成员变量的值会被输出。
需要注意的是,在定义TEST类型数组时,没有传递任何参数给构造函数,因此构造函数的默认参数值0会被使用。另外,由于没有显式定义拷贝构造函数和赋值运算符重载函数,因此编译器会自动生成默认的拷贝构造函数和赋值运算符重载函数。
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"。
阅读全文