2010-12-11 12 views
0
#include "MyArrayList.h" 

MyArrayList::MyArrayList() 
{ 
size = 0; 
} 

NODE* MyArrayList::list_create(void *data) 
{ 
NODE *node; 
if(!(node=malloc(sizeof(NODE)))) 
    return (NODE*)NULL; 
node->data=data; 
node->next=NULL; 
return node; 
} 

NODE *MyArrayList::list_add(NODE *node, void *data) 
{ 
    NODE *newnode; 
    newnode=list_create(data); 
    newnode->next = node->next; 
    node->next = newnode; 
return newnode; 
} 

我得到語法錯誤和遺漏型

NODE* MyArrayList::list_create(void *data) 
{ 


NODE *MyArrayList::list_add(NODE *node, void *data) 
{ 

myarraylist.cpp(8):錯誤C2143:語法錯誤:缺少 ';' '*'之前'*'

myarraylist.cpp(8):錯誤C4430:缺少類型說明符 - int假定。注意:C++不支持默認int

myarraylist.cpp(8):錯誤C2065:數據:未聲明的標識符

myarraylist.cpp(8):錯誤C2761:「MyArrayList :: NODE * MyArrayList :: list_create(void *)':不允許使用成員函數重新聲明

myarraylist.cpp(8):致命錯誤C1903:無法從先前的錯誤中恢復;正在停止編譯

它是一個鏈表

+1

什麼*確切*錯誤消息,你從編譯器得到什麼? – 2010-12-11 16:20:49

+1

什麼是錯誤信息?你的代碼應該做什麼?如果您希望人們幫助您修復代碼,您應該提供足夠的詳細信息讓他們瞭解您的問題。 – APC 2010-12-11 16:22:00

+0

NODE的定義在哪裏? – ybungalobill 2010-12-11 16:26:50

回答

0

你不應該在C++使用NULL,0,但你並不需要投一個空指針:任何指針類型可以在零點。如果你可以避免這些,你不應該在C++中使用void指針。事實上,如果你可以避免這些,你不應該使用原始指針。如果您可以使用new,則不應在C++中使用malloc()。這就是說,如果轉讓的左手側是不是void指針必須轉換的malloc()返回值:

node = (NODE*)malloc(sizeof(NODE)) 
+0

而不是無效我應該使用什麼 – 2010-12-11 17:13:41

+0

靜態或動態多態。編程到一個接口。 'void *'沒有提及類型。創建一個接口並調用其功能。 – wilhelmtell 2010-12-11 17:34:54