2014-11-24 133 views
-1

我試圖讓B +樹 這是indexNode實現上述類沒有指定類型

#ifdef INDEX_NODE 
#define INDEX_NODE 

#include "leafNode.h" 

class indexNode : public node{ 
    private: 
     std::map<int,indexNode*> childNodes; 
     std::map<int,leafNode*> leafNodes; 
     int childNode_size; 
     bool isLeaf; 
    public: 
     indexNode(int size); 
     ~indexNode(); 
     bool getLeafCheck(); 
     void setLeafCheck(bool isLeaf); 
     indexNode* getSubTree(int key); 
} 

#endif 

C++代碼爲 「indexNode.h」

#include "indexNode.h" 

indexNode::indexNode(int size): node(size){ 
    childNode_size = size + 1; 
    isLeaf = false; 
} 

indexNode::~indexNode(){ 

} 

bool indexNode::getLeafCheck(){ 
    return isLeaf; 
} 

void setLeafCheck(bool isLeaf){ 
    this -> isLeaf = isLeaf; 
} 

indexNode* getSubtree(int key){ 
    return childNodes.find(key) -> second; 
} 

和上面的代碼是indexNode .cc

但是,當我嘗試編譯這個 g ++ -c -Wall indexNode.cc indexNode.cc:3:1:error:'indexNode'不是不適用我型

這種錯誤的發生 我怎樣才能解決這個問題?

回答

1

你應該改變的#ifdef INDEX_NODE到的#ifndef INDEX_NODE。否則,類定義將被交換機隱藏。

1

您在類定義之後缺少分號。

} // need ; 

#endif 

另外,作爲路易斯提到的,頭部防護件必須ifndefifdef