请帮忙分析一下这段程序的结果
来源:百度知道 编辑: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啊
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();};