[英]Class does not name a type
我正在嘗試制作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:錯誤:'indexNode'未命名類型時
發生這種錯誤,我該如何解決?
您應該將#ifdef INDEX_NODE更改為#ifndef INDEX_NODE。 否則,類定義將被開關隱藏。
類定義后,您缺少分號。
} // need ;
#endif
另外,正如Lewis所提到的,標頭后衛必須是ifndef
而不是ifdef
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.