在各种令牌之前预期的主要表达

Sch*_*ote 3 c++ compiler-errors

以下代码:

class queuenode {
public:
    queuenode();
    queuenode(cargo *mydata);
    ~queuenode() {delete cargo;} //Queuenodes delete their cargo on destruction - note that queuenodes DON'T free their neighbour, that's up to the queue class
public:
    queuenode *next;
    int pri; //this should always be equal to our cargo's pri
    cargo *data;
};

queuenode::queuenode(void) {
    next= (queuenode *) NULL; 
    cargo = (cargo *) NULL; //default const creates a null queuenode - pri is left undefined
}

queuenode::queuenode(cargo *mydata) {
    //Convert constr creates a queuenode wrapping a cargo, also setting pri to its pri
    data=mydata; 
    pri=mydata->pri; 
    next=(queuenode *) NULL;
}
Run Code Online (Sandbox Code Playgroud)

给我以下错误:

pq_linkedlist.cpp: In destructor 'queuenode::~queuenode()':
pq_linkedlist.cpp:19:28: error: expected primary-expression before ';' token
pq_linkedlist.cpp: In constructor 'queuenode::queuenode()':
pq_linkedlist.cpp:28:8: error: expected unqualified-id before '=' token
Run Code Online (Sandbox Code Playgroud)

我不知道发生了什么或为什么.有各种各样的人在互联网上有相同的错误信息,但他们所有的问题似乎都与额外的分号有关,我很确定我没有.

orl*_*rlp 6

~queuenode() {delete cargo;}
Run Code Online (Sandbox Code Playgroud)

应该:

~queuenode() {delete data;}
Run Code Online (Sandbox Code Playgroud)

cargo是类型,data是变量.说话delete cargo和说话一样有意义delete int.

同样,这一行是错误的:

cargo = (cargo *) NULL;
Run Code Online (Sandbox Code Playgroud)