所以此程序的打印5 0 1
。難道不是5 1 1
? data1++
增加f1.data1
1
。 0
從哪裏來?我正在使用多個函數,因爲我剛剛開始學習對象和類,並試圖儘可能多地創造可能性。這真讓我困惑。該程序的輸出似乎打印'5 0 1'而不是'5 1 1'。我無法弄清楚爲什麼?
#include <iostream>
using namespace std;
class foo
{
private:
int data1; //private data member
public:
foo(): data1(0) //Constructor initialising it to 0.
{ }
void func(foo,foo);
void display(foo fg) const
{
cout<<data1;
cout<<endl;
cout<<fg.data1;
}
};
void foo::func(foo ff,foo fg)
{
ff.data1=5;
data1++;
ff.display(fg);
cout<<endl<<data1<<endl;
}
int main()
{
foo f1,f2;
f1.func(f2,f1);
return 0;
}
你可以在調試器中查看發生了什麼。 –
您好,歡迎來到SO請參加[The Tour](https://stackoverflow.com/tour)還有[如何提出一個好問題](https://stackoverflow.com/help/how-to-ask) –
[如何調試小程序](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/) – zett42