[問題] 樣板類別 把實作分開 struct 找不到報錯

看板C_and_CPP作者 (Charlott.HonG)時間8年前 (2016/07/05 16:02), 8年前編輯推噓8(8010)
留言18則, 6人參與, 最新討論串1/1
前一篇有發問了本來兩個問題一起問 感覺好像又是不同類型,那篇又有點長 怕影響閱讀我把它拆兩篇問好了(本來打在裡面) 程式碼:https://goo.gl/Xu3Hij 程式碼中有其中一段(create)被我註解了,那段會出錯 C:\Users\Kanasaki\Desktop\double_link_obj\main.cpp:43:1: error: 'node' does not name a type node* sgink<T1>::create(const T1 &n){ ^ 好像是說找不到typedef的定義, 不過即便我把結構放到public也是一樣 把方法放進類別內是可行的 ★★★怎麼辦呢我想分開寫 QuQ 能怎麼做 --------------------------------------------------- 本來有一大堆有點影響閱讀 修正後剩這麼一點(原本的砍了) 一開始的好像是錯的struct寫錯了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.35.139.127 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1467705733.A.09C.html

07/05 16:07, , 1F
抱(x) -> 報(o)
07/05 16:07, 1F
已更正~~

07/05 16:11, , 2F
阿~錯誤減少了,原來那一堆是struct寫錯了 還有一行錯誤 main.cpp:43:1: error: 'node' does not name a type node* sgink<T1>::create(const T1 &n){ ^ 這裡有注意到您使用 node* next{nullptr}; 請問這跟 node* next = 0; 有什麼差別嗎~

07/05 17:03, , 3F
nullptr是智慧指標
07/05 17:03, 3F

07/05 17:04, , 4F
C++不要用0和NULL
07/05 17:04, 4F
了解~

07/05 17:13, , 5F
你沒定義node......
07/05 17:13, 5F
定義在class裡面那個struct 要怎麼定義~

07/05 21:26, , 6F
typename sgink<T1>::node* sgink<T1>::create(const T1 &n){
07/05 21:26, 6F
嗚哇~過了,非常感謝您的協助

07/06 10:24, , 7F
跟你說過不要用struct
07/06 10:24, 7F

07/06 10:25, , 8F
發現麻煩了吧
07/06 10:25, 8F

07/06 10:27, , 9F
C++跟C可以看成完全不一樣概念的語言
07/06 10:27, 9F
那能怎麼改寫~我以為這樣做是最好的 主要是想完成單向與雙向鏈結 感覺結構還是需要,比較好讀與整理思緒 把結構換成class包在外面 然後在繼承進來?或是嵌入嗎? 我把它換成了這樣 https://goo.gl/FN4CkQ

07/06 11:22, , 10F
恩 不是struct的問題吧 是dependent name的宣告語法
07/06 11:22, 10F

07/06 11:22, , 11F
effective c++有一個item專門在講這個
07/06 11:22, 11F

07/06 11:23, , 12F
他有#include "single" 但是沒放上來
07/06 11:23, 12F
QQ 不懂

07/06 12:14, , 13F
... 你就把structs改成struct,然後放在test裡就好,把
07/06 12:14, 13F

07/06 12:14, , 14F
structs變成test的nested class
07/06 12:14, 14F
痾~像這樣嗎~https://www.codepile.net/pile/mzPmg0kK (網站可以直接編輯、更改) 把 structs -> struct 是什麼意思,這樣不是衝到關鍵字了

07/06 18:10, , 15F
把class structs改成struct structs...
07/06 18:10, 15F
哦哦了解~~上面的連結把它設成class也可以使用 請問設成class跟strtuct有什麼差別嗎? 還是說只是要放變數就使用struct就好?

07/08 08:03, , 16F
Class struct 除了預設private 以外都一樣 直接用class
07/08 08:03, 16F

07/08 08:03, , 17F
就好 完全沒差
07/08 08:03, 17F

07/08 08:04, , 18F
有些coding style 會prefer pod用struct 就是了
07/08 08:04, 18F
了解~謝謝你~ ※ 編輯: hunandy14 (114.35.139.127), 07/08/2016 18:55:28
文章代碼(AID): #1NUsc52S (C_and_CPP)