此主題討論共計 2 篇文章。
| how.bbs | 僅瀏覽本文 | 回覆 | 回信 | 轉寄 | |
|---|---|---|---|
| 請教大家 我在讀C++ Primer 第3版的411頁(英文版)時 發現了一行指令是有關string class的pointer要initialize 寫法是: string *pstr_type2(pstr_type); //pstr_type為另一個string class的pointer 令我不太了解的地方是pstr_type2本身為一pointer,我個人的看法是應該寫為 string *pstr_type2 = pstr_type 才對,但是上述兩種寫法在Dev C++上執行,結果都正確 第一種寫法似乎是呼叫string class的pointer的copy constructor去initialize 但是string class的pointer可以這樣做嗎? why? -- ╭╢ 師大資訊。白色情迷 ╟┬─ ⊙ Origin : bbs.csie.ntnu.edu.tw ├╨→ 140.122.185.139←╜╰─ ☆ From : alumni--csie.cs.nctu.edu.tw | |||
| .. | 僅瀏覽本文 | 回覆 | 回信 | 轉寄 | |
| ※ 引述《how.bbs@bbs.csie.ntnu.edu.tw ()》之銘言: : 請教大家 : 我在讀C++ Primer 第3版的411頁(英文版)時 : 發現了一行指令是有關string class的pointer要initialize : 寫法是: : string *pstr_type2(pstr_type); //pstr_type為另一個string class的pointer : 令我不太了解的地方是pstr_type2本身為一pointer,我個人的看法是應該寫為 : string *pstr_type2 = pstr_type : 才對,但是上述兩種寫法在Dev C++上執行,結果都正確 : 第一種寫法似乎是呼叫string class的pointer的copy constructor去initialize : 但是string class的pointer可以這樣做嗎? why? 前面有推文,不過這篇來自外站,可能原波看不到推文 如果是 pointer,我覺得沒啥差 string *pstr_type2(pstr_type) 跟 string *str_type2 = pstr_type 是一樣 的沒錯 不過我想書上寫的可能是 MyObj abc(def),可能類似這樣。跟 MyObj abc = def, 這兩者的確有點不同,比照上一段 pstr_type 的 case,前者是 pointer 的 case, 後者是屬於value 的 case 好比 strcmp(abc,def) 跟 if(abc == def) 這兩個並不相同,一個是 value compare 一個是 pointer compare,pointer 的操作通常是比較有效率一點 c++ 更多的是用 reference,大部分的 case 用 reference 可能綽綽有餘,除了 使用別人的 api lib 之外,自己寫的 function 應該是用 reference 在 function 之間傳遞足夠矣 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.112.207.179 ※ 編輯: cgcheng 來自: 59.112.207.179 (07/17 00:48) | |||
.Net 原始碼 | ASP.NET News Reader Beta 0.2.9
2007/06/21 由於微軟新聞伺服器移除多數新聞群組 (newsgroup),目前遭移除之群組暫時改為隱藏純瀏覽,若狀況已定案時,將會將隱藏中的群組重新調整。[討論]