看板 C_and_CPP 關於我們 聯絡資訊
請問一下,我的部份程式碼如下 class TP_Gra{ public: TP_Gra(int vID,Point vOrigin_Position); TP_Gra(); ~TP_Gra(); void Set_ID(int vID){ID=vID;} int Get_ID(){return ID;} void Set_Coodinate(Point Position); Point Get_Coodinate(){return Origin_Position;} private: int ID; Point Origin_Position; }; class Truckload_TP_Gra{ typedef list<TP_Gra> Contents; public: Truckload_TP_Gra(); Truckload_TP_Gra(TP_Gra one_TP); void add_TP(TP_Gra new_TP); Contents::const_iterator begin(); Contents::const_iterator end(); private: Contents Load; }; 如上,Truckload可因為list的結構而不斷擴張 但我打了這樣的程式(在windows form下) MessageBox::Show(Token_Place.begin()->Get_Coodinate()); 試圖讀取第一個元件的座標,則會發生錯誤,錯誤訊息如下 TP_Gra::Get_Coodinate' : 無法將 'this' 指標從 'const TP_Gra' 轉換成 'TP_Gra & 請問,我該怎麼改呢 又如果現在我是要取最後一個元件的座標,那我又要怎麼改 我知道end()指的是一個空集合,要讀取該位置的前一個位置才是最後的元件位置 但是我的程式碼該怎麼表示呢?? 以上兩個問題,麻煩有經驗的大大回答一下,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.18.48.28
Cloud:不清楚為什麼你要將iterator暴露出來..回傳TP_Gra比較好吧 07/10 15:55
Cloud:改為 Contents::iterator 應該就行了 07/10 15:56
Cloud:最後的元素用 list<T>::back() 07/10 15:57