請問 cout<<(coor1++).getx()<<","<<(coor1++).gety()<<endl; 和 cout<<(coor1++).getx()<<","; cout<<(coor1++).gety()<<endl; 打印出的結果不一樣是為什么呀
請問
cout<<(coor1++).getx()<<","<<(coor1++).gety()<<endl;
和
cout<<(coor1++).getx()<<",";
cout<<(coor1++).gety()<<endl;
打印出的結果不一樣是為什么呀
2020-04-13
因為老師的是分開的,老師那樣寫是為了讓我們看清楚后置++運算符怎么用的。如
cout<<(coor++).getX()<<",";
cout<<(coor++).getY()<<endl;
這里面第一次的getX()就和我們之前學過a++一樣,先用后+
后面連起來用是因為入棧的方式,才輸出 2, 4
C/C++都一致的,即都是先運算b,b入棧(存儲進緩沖區),運算a,a入棧(存儲進緩沖區)
???????????????輸出(顯示)時,a先出棧(a緩沖區被刷新),b出棧(b緩沖區被刷新)
2020-04-02
在第一種寫法中,coor1只進行了一次++運算;在第二種寫法中,cout<<(coor1++).getx()對coor1這個對象進行了一次++運算,在cout<<(coor1++).gety()中,又進行了一次++運算。所以結果不一樣。把cout<<(coor1++).gety()改為cout<<coor.gety()就行了。(應該是這樣的,沒運行,不敢肯定)