输出下列程序运行结果 #include using namespace std; class Demo{ public: Demo(){data=1;} Demo(int d):data(d){} void setDama(int d){data=d;} int getData(){return data;} private :int data; }; int main{Demo array[6]={10,20,30},*pa=arrat+5; pa->setData(pa->getData()+15); while(pa>array){ int d=(pa--)->getData(); pa->setData(d+pa->getData()); cout<getData()<<".";}return 0; }
时间: 2023-11-27 11:50:03 浏览: 61
这段程序是有一些语法错误的,正确的代码如下:
```
#include <iostream>
using namespace std;
class Demo{
public:
Demo(){data=1;}
Demo(int d):data(d){}
void setData(int d){data=d;}
int getData(){return data;}
private:
int data;
};
int main(){
Demo array[6]={10,20,30};
Demo *pa=array+5;
pa->setData(pa->getData()+15);
while(pa>array){
int d=(pa--)->getData();
pa->setData(d+pa->getData());
cout<<pa->getData()<<".";
}
return 0;
}
```
运行结果为:
```
50.45.65.```
解释一下代码的执行过程:
1. 定义一个名为 Demo 的类,其中包含一个整型成员变量 data 和三个成员函数。
2. 在主函数中定义一个 Demo 类型的数组 array,初始化数组元素为 10、20、30。
3. 定义一个 Demo 类型的指针 pa,让它指向数组最后一个元素 array+5。
4. 将 pa 指向的对象的 data 值加上 15。
5. 进入一个 while 循环,循环条件是 pa 指向的对象不是数组第一个元素。
6. 在循环中,先将 pa 指针向前移动一个位置,并获取当前位置的 data 值。
7. 将 pa 指向的对象的 data 值设为当前位置的 data 值加上前一个位置的 data 值。
8. 输出当前位置的 data 值,并在末尾加上一个点号。
9. 循环结束,程序结束运行。
阅读全文