我有這個類:追加到隊列中,而無需調用析構函數
class user
{
private:
string userid;
string password;
public:
user(){};
user(string a, string b){userid = a; password = b;}
~user(){cout<<"Trace";};
void print (ostream& out);
};
每次我嘗試這種方式添加到我的隊列aqueue.append(user(userid, password);
將追加到我的隊列,但隨後就會調用析構函數。隊列是指向下一個單元格的基本通用鏈接列表。我的問題是:如何將每次向析構函數調用時添加到隊列中?
假設你的隊列像'std :: queue'一樣工作,你不能。將對象複製到隊列中,並且原件被銷燬。看起來你和你的隊列一樣。 – 2012-01-10 05:37:14
@BillyONeal我可以用指針來解決這個問題嗎? – 2012-01-10 05:38:07
@Joe:是的;但額外的內存分配將花費遠遠超過幾個析構函數調用。 (老實說,在大多數情況下,鏈表都是一個可怕的數據結構;你最好使用類似std :: deque或者循環緩衝的方式) – 2012-01-10 05:39:31