作者查詢 / stucode
作者 stucode 在 PTT [ C_and_CPP ] 看板的留言(推文), 共188則
限定看板:C_and_CPP
看板排序:
4F→: 先忽略硬把 TCHAR 塞給 char 這件事的話,原 PO 的問題07/06 00:19
5F→: 主要是不清楚 string 跟 string literal 的差別。07/06 00:19
6F→: 比較看看下面兩行輸出的差異應該就知道問題在哪:07/06 00:19
7F→: cout << GetFilePath() << endl;07/06 00:19
8F→: cout << "C:\\LGPO\\Debug\\" << endl;07/06 00:20
9F→: 不過刪除檔案可以像 2F 建議的用 std::filesystem 之類07/06 00:20
10F→: 處理會比用 system() 來的好。07/06 00:20
2F→: 我覺得這應該不是程式碼,是填空題吧?12/12 00:59
3F→: 問號處都用-(減號)填入看起來很合理。12/12 00:59
4F→: 在 cmd 裡 echo %PATH% 看一下設定有沒有進去。另外也確10/17 21:36
5F→: 認一下環境變數的使用者,看你的設定頁開頭是 ACER,但在10/17 21:37
6F→: cmd 裡面是 a3171。10/17 21:37
7F→: 那就不知道了@@,提使用者是想說設定可能沒吃到。但 PATH10/17 23:19
8F→: 裡面有應該就不是這個問題。另外雖然不太可能沒有,也檢10/17 23:19
9F→: 查一下 %PATHEXT% 裡面有沒有 .EXE 好了。10/17 23:19
11F推: 最後再檢查一下 PATH 裡面那個雙引號有沒有框錯好了。10/18 00:20
2F→: eofbit 只有在「已經吃到」檔案結尾之後才會設立。03/20 17:39
6F推: 是的,eof() 只回報目前的狀態,並不會自行檢查。03/20 19:33
8F→: sqlite3 有支援 UTF-8 喔。也有提供 UTF-16 的 API。03/17 14:10
9F→: 如果嘗試把 UTF-16 字串存進 UTF-8 資料庫的話,sqlite303/17 14:12
10F→: 會自動幫你做轉換。03/17 14:12
11F→: (如果使用 UTF-16 的 API 的話)03/17 14:14
16F→: iterator 是為了抽象化容器的存取用的。例如實作一個找出03/16 00:49
17F→: 容器中最大值的演算法,如果沒有 iterator 來抽象元素03/16 00:50
18F→: 存取動作,對於像是 list 與 array 等疊代方式不同的03/16 00:50
19F→: 容器,就需要針對每種容器各寫一份。03/16 00:50
1F→: 從錯誤訊息來看,應該是宣告了建構函數可是沒有給定義的03/15 14:19
2F→: 關係。或是定義在鏈結器看不到的地方。03/15 14:19
88F推: 看了好久,仍然沒找到彩蛋在哪XD04/01 19:38
91F推: 原來是……XD04/01 22:42
1F→: begin() 沒有 const 修飾不能在有 const 的 a 上面呼叫。12/07 23:30
2F→: 194 行的 list 是 non-const 的。12/07 23:31
12F→: 怎麼寫完 copy ctor 後 operator = 就不見了XD?10/08 23:20
13F→: 1. copy constructor 裡面不用 delete,因為是初始化,10/08 23:20
14F→: 還沒有前值,直接 new 然後 copy 就好。10/08 23:20
15F→: 2. copy assignment 需要檢查並釋放(或重新利用)現有10/08 23:20
16F→: 資源,同時要避免 self-assignment 造成錯誤的10/08 23:21
17F→: delete。10/08 23:21
18F→: 3. copy assignment 請傳回 reference,不要傳值。10/08 23:21
19F→: 4. splitStack() return first 就好,不用再包一層。10/08 23:21
20F→: 其實你的指標幾乎都是在 3. 或 4. 多餘的臨時物件中被10/08 23:21
21F→: delete 掉的。不過如果有做好 deep copy,頂多就是多跑10/08 23:22
22F→: 幾次 copy 效能較差而已,也不至於會使用到被 delete10/08 23:22
23F→: 掉的指標,造成嚴重錯誤。10/08 23:22
25F→: 傳回值的話,比較容易產生不必要的臨時物件。除此之外,10/09 05:57
26F→: 還可能導致非使用者預期的行為。其實 C++ 並沒有硬性規10/09 05:57
27F→: 定 copy assignment 要傳回 reference。這比較像是一種10/09 05:57
28F→: 慣例,讓自定義類別的行為盡可能相似於 C++ 原生型別10/09 05:58
29F→: (如 int)的行為。減少類別使用時產生意料之外的效果。10/09 05:58
30F→: 另外一個理由是,CopyAssignment requirements 要求回傳10/09 05:58
31F→: 型態必須是 T&,沒有滿足這個條件可能無法正常使用某些10/09 05:58
32F→: 標準容器的方法。事實上,如果沒有為類別宣告這個函數,10/09 05:58
33F→: 編譯器自動幫你生成的版本也是傳回 reference。當然,如10/09 05:58
34F→: 果你有更好的理由傳回新物件或者是其他型別,那就不用客10/09 05:58
35F→: 氣的傳吧!只要確保使用者了解並正確使用你的類別即可。10/09 05:59
40F→: 實測了一下,解構都正常喔。如果你有開最佳化(或者是10/09 20:09
41F→: IDE 的 Release mode),那 first 可能被 RVO 掉,實際10/09 20:09
42F→: 解構會在 b 生命週期結束時(離開 main() 時)發生。10/09 20:09
43F→: 另外,複製建構函數裡的 new 括號錯了。10/09 20:09