2012-03-02 73 views
-2

我收到一個錯誤:預期的初級表達式int之前,當我嘗試返回bool函數中的2個值,我認爲它是一個成員函數錯誤。錯誤:「預計初級表達式之前int」

bool binaryTreeTraversal::LeafNode(int node) 
{ 
     return (binaryTreeTraversal::LeftPtr(int node) == NULL && 
     binaryTreeTraversal::RightPtr(int node) == NULL); 

} 

class binaryTreeTraversal 

{ 
public: 
    int TreeNodes[2^5]; 
    int size; 
    binaryTreeTraversal(void); 
    bool LeafNode(int node); 
    int RootNode(int node); 
    int LeftPtr(int node); 
    int RightPtr(int node); 
    int length(); 
    int preOrderTraversal(int); 
    int inOrderTraversal(int); 
    int postOrderTraversal(int); 
}; 

bool binaryTreeTraversal::LeafNode(int node) 
{ 
    return (binaryTreeTraversal::LeftPtr(node) == NULL && 
      binaryTreeTraversal::RightPtr(node) == NULL); 
} 

回答

2

變化:

return (binaryTreeTraversal::LeftPtr(int node) == NULL && 
     binaryTreeTraversal::RightPtr(int node) == NULL); 

到:

return (binaryTreeTraversal::LeftPtr(node) == NULL && 
     binaryTreeTraversal::RightPtr(node) == NULL); 

編輯:

LeftPtr()RightPtr()返回類型爲int

class binaryTreeTraversal 
{ 
public: 
    ... 
    bool LeafNode(int node) 
    { 
     return (binaryTreeTraversal::LeftPtr(node) == 0 && 
       binaryTreeTraversal::RightPtr(node) == 0); 
    } 
}; 

或:

class binaryTreeTraversal 
{ 
public: 
    ... 
    bool LeafNode(int node) 
    { 
     return (!binaryTreeTraversal::LeftPtr(node) && 
       !binaryTreeTraversal::RightPtr(node)); 
    } 
}; 

或作爲LeftPtr()RightPtr()和不virtual

class binaryTreeTraversal 
{ 
public: 
    ... 
    bool LeafNode(int node) 
    { 
     return (!LeftPtr(node) && !RightPtr(node)); 
    } 
}; 
+0

我得到一個警告:在算術中使用NULL 如果我脫掉'int' – 2012-03-02 16:50:40

+0

'binaryTreeTraversal :: LeftPtr()'的返回類型是什麼?我猜測這不是一個指針。 – hmjd 2012-03-02 16:52:10

+0

在你提到的那一點上,它(binaryTreeTraversal)是一個構造函數。 – 2012-03-02 16:56:54

0

回報(binaryTreeTraversal :: LeftPtr(INT節點)== NULL & &
binaryTreeTraversal: :RightPtr(int node)== NULL);

//從加粗部分刪除INT

+1

任何變化它顯示一個警告:NULL用於算術,當我刪除並建立它。 – 2012-03-02 16:52:18

0
return (binaryTreeTraversal::LeftPtr(int node) == NULL && binaryTreeTraversal::RightPtr(int node) == NULL); 

應該

return (binaryTreeTraversal::LeftPtr(node) == NULL && binaryTreeTraversal::RightPtr(node) == NULL); 
0
bool binaryTreeTraversal::LeafNode(int node) 
{ 
    return ((LeftPtr(node) == NULL) && (RightPtr(node) == NULL)); 
} 
5

使這個問題有用的人: 「預期主表達式」 的意思是「我還以爲你會在這裏表達一下。「

表達式是應用於對象和函數調用的對象,函數調用或運算符。例如,x + f(y)是涉及變量xy,函數f和運算符+的表達式。

表達式有很多種類型,但這種區別對於此錯誤消息的目的並不重要。

在打開括號表示函數調用之後,您需要輸入一個表達式,表示要作爲函數調用參數傳遞的值。但是,編譯器看到的字int,它不是一個變量或函數或運算符。

+0

好的,謝謝你與我分享的寶貴信息。 – 2012-03-02 16:54:08

相關問題