我有一個自定義堆棧類。大部分的代碼可以在這裏看到:
Member functions of a templated class, that take a template type as argumentC++ cout自定義堆棧類的奇怪行爲
我填堆像這樣:
stack <int> Astack;
Astack.Push(1); Astack.Push(2); Astack.Push(3); Astack.Push(4);
那麼我這樣做:
cout << Astack.Pop() << Astack.Pop() << Astack.Pop() << Astack.Pop() <<endl;
,並得到這樣的:1234
然而,如果我這樣做:
cout << Astack.Pop(); cout << Astack.Pop(); cout << Astack.Pop(); cout << Astack.Pop();
我得到這個:4321,這顯然是我想要的。
那麼,什麼給了?
但是你不能依賴那個順序(或任何其他的);請參閱@詹姆斯的答案。 – 2011-03-01 04:54:46
@Jeremiah:我知道,只是在這種情況下說這就是發生了什麼。 – 2011-03-01 05:00:21
這是發生在這種情況下,我想澄清它,所以其他人不會認爲這是總是發生。 – 2011-03-01 05:02:34