[問題] template class
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
C++(DEV C++)
問題(Question):
關於template class的用法
由於對物件導向不熟(純C起家) 有語法誤用請海含
錯誤結果(Wrong Output):
東西太多 真的要的話 我再補
程式碼(Code):(請善用置底文網頁, 記得排版)
這邊先問一個問題
看到不少書的範例template class分開寫在標頭檔裡
可是小弟只是要隨便寫個二元樹結構 直接寫在含main的cpp裡應該沒問題吧?
如果上述沒問題的話
以下開始敘述程式碼(書的範例)
template<class B>class tree;//前向宣告
template<class T>
class tree_node{
friend class tree<T>;
private:
T data;
tree_node<T> *left;
tree_node<T> *right;
};
template<class B>
class tree{
public:
tree(B data){
root.data=data;
root.left=NULL;
root.right=NULL;
}
tree(){
}
~tree(){
}
private:
tree_node<B> *root;
};
這段是在main前面
main裡面 的資料輸入 就不多講解 應該是正常的
main裡 用一個名為data的變數(char)當資料暫存
而問題點是在使用了以下這行(root為第一次宣告,想使用建構子建立物件)
tree<char> root(data);
補充說明(Supplement):
個人感覺是我對template語法不熟 煩請板上先進指教
建構子那裏
改成root->data=data;(也就是.改成->即可編譯正常) 但仍想請教編譯失敗的理由
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.164.150.214
※ 編輯: seedpk5079 來自: 218.164.150.214 (02/05 13:42)
※ 編輯: seedpk5079 來自: 218.164.150.214 (02/05 13:48)
推
02/05 13:47, , 1F
02/05 13:47, 1F
→
02/05 13:48, , 2F
02/05 13:48, 2F
我真的忘了是指標了 剛剛是隨便把.改成->試試看 感謝解答
※ 編輯: seedpk5079 來自: 218.164.150.214 (02/05 13:49)
→
02/05 13:49, , 3F
02/05 13:49, 3F
→
02/05 17:07, , 4F
02/05 17:07, 4F
→
02/05 17:07, , 5F
02/05 17:07, 5F
→
02/05 17:08, , 6F
02/05 17:08, 6F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章