2
私は非常に新しいC + +ので、私はこれのためにいくつかの助けが必要になります。ここでは、コードです:私はグラムでコンパイルしようとすると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++ 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を使ってビルドしようとしましたが、それは無駄です。
ありがとうございました!
をそして、それはおそらくrootnode.hがいけない#includeする必要がありますか? – kfsone
間違いなく。私はそれを追加します –
あなたは 'class RootNode'定義を今必要としません - それはRootNode.hから来ています – kfsone