你好朋友下面的程序的輸出是如此奇怪。我沒有得到理由。 爲什麼運營商超載行爲如此奇怪
#include <iostream>
using namespace std;
class xyz
{
private:
int ab, cd;
public:
xyz()
{
}
xyz(int i, int j)
{
ab = i;
cd = j;
}
xyz operator+(xyz);
void show()
{
cout << ab << " .... "<< cd;
}
};
xyz xyz :: operator +(xyz ob)
{
xyz temp;
temp.ab = ab + temp.ab;
temp.cd = cd + temp.cd;
return temp;
}
int main()
{
// xyz xy, yz;
xyz xy(2, 3);
xyz yz(4, 5);
xy = xy + yz;
xy.show();
return 0;
}
你嘗試在調試器中運行呢?或者**我們是調試器? – Neal 2012-04-20 13:35:38
@Neal:是的,我確實調試過代碼,特別是temp.ab = ab + temp.ab; temp.cd = cd + temp.cd;代碼行爲奇怪 – 2012-04-20 13:36:51
除了下面的解決方案,我還會初始化默認構造函數中的成員變量: xyz():ab(0),cd(0){} – 2012-04-20 13:42:38