[問題] 從鍵盤輸入數字存到類別裡的陣列

看板C_and_CPP作者 (無良記者)時間11年前 (2013/02/19 17:10), 編輯推噓0(0011)
留言11則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 2010 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) iostream 問題(Question): 我是一個自學C++還不久,觀念亂七八糟的人 最近在寫卡了很久的「自定資料型態」章節,寫到最後一題 這題要做一個 last - in, first - out 的堆疊,並把需要的東西都丟到一個class裡 我想要在class裡創一個陣列,把從鍵盤輸入的資料一個個丟進去 並再創一個靜態變數,代表陣列的位置,好讓程式知道要把輸入值丟到哪個位置 移出資料時則用偷懶的手法,只是把靜態變數減一而已 要看最頂端資料時把靜態變數所代表的位置的資料印出來 印出資料時則從靜態變數代表的位置開始,往前一個一個印出來 問題出在於class裡的陣列並沒有存入鍵盤輸入的值 印出來全部都是沒有初始化的亂碼,而我看不出來問題在哪裡0.0 另一個問題是我在main裡呼叫class的建構函式時,都是用很蠢的方法 不知道能不能有更好的方法...... 不過我自己也覺得對於class和array的觀念,我都還是破破爛爛的 也希望各位板友能從我打的code看出哪裡的觀念有重大缺失 在寫程式時的想法,都盡量敘述在程式碼和文章裡了 請大家不吝一看,感謝 m(_ _)m 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 靜態變數setting確實有隨著程式的控制而增減,但輸入值並沒有存到class裡的陣列 結果要從class裡的建構函式印出陣列內資料時,只能印出未初始化的亂數 程式碼(Code):(請善用置底文網頁, 記得排版) http://codepad.org/bI70M2Vi 補充說明(Supplement): 等解決完這題,我就要暫時丟下現在看的這本,改看C++ Primer了......ˊˋ --

11/04 22:52,
一樓帥哥
11/04 22:52

11/04 22:52,
二樓帥哥
11/04 22:52

11/04 22:52,
二樓帥哥
11/04 22:52

11/04 22:52,
..
11/04 22:52

11/04 22:53,
五樓吃屎
11/04 22:53

11/04 22:53,
幹 可以不要當簽名檔嗎...
11/04 22:53
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.39.102.47

02/19 17:31, , 1F
02/19 17:31, 1F

02/19 17:31, , 2F
通常堆疊會叫做stack,heap是另一種東西...XD
02/19 17:31, 2F
囧a...... 那請問我原來的程式碼問題出在哪裡呢0.0?

02/19 18:40, , 3F
stack heap 中文很容易搞錯,我是用heap翻成"堆"的中譯
02/19 18:40, 3F

02/19 18:57, , 4F
1. 把 stack 命名為 heap,容易造成混淆
02/19 18:57, 4F

02/19 18:57, , 5F
2. 仰賴靜態變數,無法同時存在多個 instance
02/19 18:57, 5F

02/19 18:58, , 6F
3. 堆疊陣列跟 value 的生命週期不同,不該包在一起
02/19 18:58, 6F
(1)是我搞混了,(3)我瞭解了,但請問(2)是什麼意思0.0?

02/19 20:44, , 7F
假設我需要兩個 stack,我會希望他們有各自的 top pointer
02/19 20:44, 7F

02/19 20:45, , 8F
這種情況下就不該把 top pointer 宣告為 static
02/19 20:45, 8F

02/19 20:46, , 9F
因為 static 表示其為所有的 instance 共用
02/19 20:46, 9F
喔喔這個我懂,不過我想說這個程式用static應該沒差(吧?)

02/19 23:19, , 10F
我想你該留意的是為何一開始會想幫這個變數加上 static
02/19 23:19, 10F
因為書上說static變數可以用來計算呼叫建構函式的次數,想說跟我想的程式功能有像 沒多想就寫下去了 ._.

02/22 04:31, , 11F
所以問題有解決嗎?
02/22 04:31, 11F
喔喔有了,感謝! ※ 編輯: o07608 來自: 218.173.173.183 (02/22 13:59)
文章代碼(AID): #1H8q6Iz3 (C_and_CPP)