[問題] 預設建構子與有預設值的建構子模稜兩可

看板C_and_CPP作者 (無良記者)時間11年前 (2013/02/04 09:08), 編輯推噓9(9026)
留言35則, 13人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 2010 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) iostream 問題(Question): 我是一個剛自學C++不久的新手 最近開始讀class的部份,還在想辦法摸清楚各種基本觀念及定義中 昨天讀到「宣告類別的物件陣列」這一塊 書本有給範例程式,並說要改動原本的建構函式以免編譯器和新加的建構函式搞混 但他範例程式的說明並沒有很清楚,因此我無法了解為何要如此改動 (詳見下面程式碼) 如果不照書本上的改動的話,理所當然的會有錯誤產生 自己想做其他測試時,又無法重現那些錯誤,因此不知道為何會有這些錯誤的出現 希望板友們能夠替我解惑,感謝0.0 餵入的資料(Input):預期的正確結果(Expected Output):錯誤結果(Wrong Output):程式碼(Code):(請善用置底文網頁, 記得排版) http://codepad.org/ZY72mfs5 詳細的問題描述在程式碼的註解裡 補充說明(Supplement): --

12/07 21:04,
+50 +20 +20 +20 +20
12/07 21:04

12/07 21:05,
二樓帥哥
12/07 21:05

12/07 21:05,
坐等答案安定。 LOL #1EtsHO_D
12/07 21:05

12/07 21:06,
四樓帥哥
12/07 21:06

12/07 21:06,
5樓吃屎
12/07 21:06

12/07 21:07,
原PO我站內信給你這種文章就不要佔版面了吧
12/07 21:07
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.27.10.241

02/04 09:56, , 1F
如果第一個 cont 也給 lv 初值的話,那與 default cont
02/04 09:56, 1F

02/04 09:57, , 2F
會混淆 另外,給初值的參數要寫後面,這樣呼叫時才知道
02/04 09:57, 2F

02/04 09:58, , 3F
哪些是被省略的
02/04 09:58, 3F

02/04 09:58, , 4F
cont → ctor 囧
02/04 09:58, 4F
就是這裡搞不懂0.0 為何給了lv初始值的話會和default ctor搞混?

02/04 10:22, , 5F
當你的預設值給的不一樣的時候 用 CBox 要呼叫哪一個?
02/04 10:22, 5F

02/04 10:41, , 6F
從呼叫的人的角度來看
02/04 10:41, 6F
慧根不足,還是無法理解...... 不是預設值原本就不一樣嗎?為什麼還是會有混淆的情況呢?

02/04 14:21, , 7F
你有給初值的就是可給可不給
02/04 14:21, 7F

02/04 14:22, , 8F
假如你有兩個A(i=0,j=0)跟A(void)
02/04 14:22, 8F

02/04 14:22, , 9F
前面那個A後面兩個參數可以不用給
02/04 14:22, 9F

02/04 14:22, , 10F
假如你今天呼叫A(),那你要呼叫前面還是後面?
02/04 14:22, 10F

02/04 14:23, , 11F
就理論上,兩個都是可行的,這就是混亂的點
02/04 14:23, 11F
好像有點理解了...... 以後有遇到類似的問題應該可以更了解吧?

02/04 14:47, , 12F
另,google「Overload Resolution,重載決議三步驟」
02/04 14:47, 12F

02/04 14:48, , 13F
找不到的話借本 C++ Primer 翻翻 function 章節。
02/04 14:48, 13F
翻了一下精華區的書籍推薦又查了一下網路之後,似乎這本是人人推薦的書 就直接買一本好了._.

02/04 15:11, , 14F
4e / 5e 差很多,英文基本字彙看得懂的話,直接買 5e.
02/04 15:11, 14F
請問主要是差在哪裡呢0.0? 因為還有課業進度壓力,如果不會差太多的話,個人想說中文看起來會快很多

02/04 15:37, , 15F
扣除編排5e更好外,差在 4e 沒有 C++ 11,這差很大!!
02/04 15:37, 15F
正在維基上面查C++ 11的資料,嗯......OAO 乾脆兩種都各買一本好了~"~

02/04 17:03, , 16F
當年學校教C++的老師,只會舊版C++,連namespace都不知道
02/04 17:03, 16F

02/04 17:04, , 17F
你用C++11這種新東西,說不定老師也不懂
02/04 17:04, 17F
o_Oa......

02/04 17:59, , 18F
直接買5E,兩本差太多,根本是不同的書
02/04 17:59, 18F

02/04 18:00, , 19F
英文就邊查邊看吧,不然中文版的字彙翻譯有些怪怪
02/04 18:00, 19F

02/04 18:18, , 20F
lambda不知道會被翻譯成什麼樣子...匿名函式?(不太對)
02/04 18:18, 20F

02/04 18:19, , 21F
感覺不要翻比較合理?也沒有人把α、β翻成中文的
02/04 18:19, 21F

02/04 18:22, , 22F
阿爾法、貝塔(咦)
02/04 18:22, 22F

02/04 18:46, , 23F
中文也一律都叫 lambda 表達式, 應該沒人翻吧
02/04 18:46, 23F

02/04 18:47, , 24F
不過 purpose 大說的可能也是一個問題, C++11 還不夠普及.
02/04 18:47, 24F

02/04 18:54, , 25F
就翻成入表達式吧XD
02/04 18:54, 25F

02/04 19:16, , 26F
樓上XD
02/04 19:16, 26F

02/04 19:18, , 27F
入表達式 XDDDDD
02/04 19:18, 27F
我還想說為啥是成人表達式 ._.

02/04 20:00, , 28F
哈,推 成人表達式 ,讚!
02/04 20:00, 28F

02/04 20:16, , 29F
λ
02/04 20:16, 29F

02/04 20:39, , 30F
成人表達式 XD
02/04 20:39, 30F

02/04 21:18, , 31F
成人表達式太好笑了 XDDDDDDDD
02/04 21:18, 31F

02/04 22:08, , 32F
推成人表達式 XDDDD
02/04 22:08, 32F

02/04 22:28, , 33F
譯名越來越好了誰快去寫書吧
02/04 22:28, 33F
《The Essential C++ for PTT User》 ※ 編輯: o07608 來自: 114.27.10.241 (02/04 23:05)

02/05 01:56, , 34F
EdisonX 大神請受小弟一拜... m(_ _)m
02/05 01:56, 34F

02/05 11:06, , 35F
@@ 我只是鳥仔屎,倒是版上不少大神都讓我崇拜 :)
02/05 11:06, 35F
文章代碼(AID): #1H3mdsTq (C_and_CPP)