我得到一個編譯錯誤,我使用插入函數的創建函數。當我在if子句中執行不同的調用時,它可以工作,但是我想將它移動到單獨的創建函數中。任何關於我得到的編譯錯誤的幫助表示讚賞C++鏈接列表插入函數
| 76 |錯誤:無法轉換list_link*' to
sorted_list :: list_link *'in assignment |
頭文件
class sorted_list
{
public:
sorted_list(); // Constructor declaration
~sorted_list(); // Destructor declaration
void insert(int key, double value);
void print();
private:
class list_link
{
// Declarations
public:
my_key_type key;
my_value_type value;
list_link *next;
};
list_link* first;
};
功能
void sorted_list::insert(int key, double value)
{
list_link *curr, *prev;
curr = first;
while(curr)
{
prev = curr;
curr = curr->next;
}
if(first == 0 || prev == 0) //if empty or add first
{
cout << "empty list" << endl;
list_link *new_link = new list_link;
new_link->key = key;
new_link->value = value;
new_link->next = 0;
first = new_link;
}
else
{
cout << "add" << endl;
prev->next = create(key, value, 0);
}
}
創建函數
list_link* create(my_key_type key, my_value_type value, list_link* next)
{
// creates the node;
list_link *new_link = new list_link;
// add values to the node;
new_link->key = key;
new_link->value = value;
new_link->next = next;
return new_link;
}
有沒有其他的方法,因爲我想保持創建節點內部的類只有 – starcorn 2010-11-03 01:15:31
@starcorn,如果它是內部的,那麼不要使用獨立函數;使create函數成爲sorted_list的一個私有函數。 – 2010-11-03 02:33:25
啊,這就是我的想法,但在我看到我不得不在.cc文件中編寫sorted_list :: list_link sorted_list :: create(){}之前,我一直堅持使用它。無論如何,我想我現在整理出來了。謝謝 – starcorn 2010-11-03 09:28:35