我發現了一個類似於這個問題的問題,儘管放置的方式比我想的要複雜得多(問題得分爲-2)。希望這會更容易遵循。當在函數C++中改變時,類的公共變量不會被保留
事情的一般要點是涉及的兩個類是GUI和播放器(我在其他類中遇到了同樣的問題,但如果我能理解爲什麼這個不工作,它應該適用於其他類)。
GUI包含「Player.h」。類Player具有一個公共布爾變量'hasBall';當一個'Player'被傳遞給一個函數Pass()並且布爾值發生了變化時,它似乎只是一個臨時對象,因此不會更新正在傳遞的對象本身。請參見下面的代碼:
這工作得很好,布爾值Plyr1A和Plyr2A(在Gui.h定義)改變和保存
Plyr1A.hasBall = false;
Plyr2A.hasBall = true;
但是布爾值Plyr1A和Plyr2A保持與此相同。
Pass(Plyr1A,Plyr2A); //Boolean values for Plyr1A and Plyr2A remain the same with this.
void GUI::Pass(Player passer, Player receiver) {
passer.hasBall = false;
receiver.hasBall = true;
}
如果任何人都可以向我解釋爲什麼會發生這種情況,我會很感激!如果有任何額外的信息需要讓我知道。
乾杯:)
真棒謝謝:)我意識到這是一個nooby問題(根據反饋),所以我很欣賞一個堅實的答案。有時在互聯網上很難找到,隱藏在更復雜的例子中。 – nat1707828