请帮忙分析一下这段程序的结果

来源:百度知道 编辑:UC知道 时间:2024/05/24 13:22:34
#include<iostream>
using namespace std;
class Y{
int a;
public:
void setvalue(){
a=1;
}
void display(){
cout<<a;
}
friend Y operator +(Y &a,Y &b){
Y k;
k.a=a.a+b.a;
return k;
}
};
int main(){
Y a,b,k;
k=a+b;
k.display();
system("pause");

}
现实的不应该是2吗 运行结果怎么是58啊

setvalue()函数并没有执行
所以a的值是任意的

运行结果是随机数。因为你的Y类没有自定义的构造函数,a的初始值不确定。

要想得到预期结果,应该这么写:

在Y类中增加 :

public: Y(){setvalue();};