我对c ++很新,所以我需要一些帮助。这是代码:
RootNode.h
#ifndef ROOTNODE_H
#define ROOTNODE_H
class RootNode
{
public:
int getNodeId();
void setNodeId(int i );
protected:
private:
int node_id;
};
#endif // ROOTNODE_H
RootNode.cpp
class RootNode{
private:
int node_id;
RootNode()
{
//ctor
this->setNodeId(0);
}
void setNodeId(int i ){
node_id = i;
}
int getNodeId(){
return node_id;
}
~RootNode()
{
//dtor
}
};
的main.cpp
#include <stdio.h>
#include <iostream>
#include "LeafNode.h"
#include "DecisionNode.h"
#include "RootNode.h"
using namespace std;
int main(int argc, const char* argv[]){
RootNode rootNode;
cout<<rootNode.getNodeId();
return 0;
};
当我尝试使用g ++编译时出现此错误:
$ g++ RootNode.cpp main.cpp
/tmp/ccylUcLS.o: In function `main':
main.cpp:(.text+0x17): undefined reference to `RootNode::getNodeId()'
collect2: error: ld returned 1 exit status
我在网上看过,但我真的不明白出了什么问题。我也尝试使用CodeBlocks构建,但它没用。
谢谢!
答案 0 :(得分:3)
您的.cpp
文件应如下所示:
#include "RootNode.h"
int RootNode::getNodeId()
{
// stuff
}
void RootNode::setNodeId(int i)
{
// stuff
}